0

そのようなクエリの一般的な解決策を探しています:

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)
4

1 に答える 1

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>';
于 2012-05-05T10:00:02.317 に答える