我正在寻找此类查询的一般解决方案:
SELECT * FROM A
LEFT JOIN B on A.ID = B.FK_ID
SELECT * FROM A
LEFT JOIN B on A.ID = B.FK_ID
LEFT JOIN C on B.ID = C.FK_ID
将它放在一个数组中,因此连接的记录将位于嵌套数组中。这很复杂不是吗?我只有查询并获取所有记录
编辑:
通常会返回
A.col1 A.col2 A.col3 B.col1 B.col2 B.col3
如果A有4行且B的2条记录连接到A,A将有5条线。相反,我想要这个:
A.col1 A.col2 A.col3 B (array)
答案 0 :(得分:1)
当您构建稍微不同的源数组时,您可以使用此函数。
这是重复的(http://stackoverflow.com/questions/8431463/more-efficient-hierarchy-system/8431551)(parent_id,id,title):
$q = mysql_query("SELECT id, parent_id, name FROM categories");
while ($r = mysql_fetch_row($q)) {
$names[$r[0]] = $r[2];
$children[$r[0]][] = $r[1];
}
function render_select($root=0, $level=-1) {
global $names, $children;
if ($root != 0)
echo '<option>' . strrep(' ', $level) . $names[$root] . '</option>';
foreach ($children[$root] as $child)
render_select($child, $level+1);
}
echo '<select>';
render_select();
echo '</select>';