UNION ALL を使用して、構造がまったく同じ 3 つのテーブルの列をクエリしています。
$sql="
(SELECT col1 FROM table1 WHERE col2 IN ('a','b','c') and col3 IS NOT NULL)
UNION ALL
(SELECT col1 FROM table2 WHERE col2 IN ('a','b','c') and col3 IS NOT NULL)
UNION ALL
(SELECT col1 FROM table3 WHERE col2 IN ('a','b','c') and col3 IS NOT NULL)
";
次に、PDO を使用してそのステートメントを準備し、実行します
$stmt = $pdo->prepare($sql);
$stmt->execute();
$var = $stmt->fetchAll(PDO::FETCH_ASSOC);
私の問題は、配列が生成されることです: $var、整数キーを使用し、各結果をサブ配列に分割します。各テーブルからの結果が、できればテーブル名をキーとして、独自のサブ配列にある必要があります。
だから現在:
print_r($var)
; 与えます:
Array
(
[0] => Array ( [col1] => asd)
[1] => Array ( [col1] => sdf)
[2] => Array ( [col1] => dfg)
[3] => Array ( [col1] => fgh)
)
をお願いします:
Array
(
[table1] => Array
(
[0] => Array ( [col1] => asd)
[1] => Array ( [col1] => sdf)
)
[table2] => Array
(
[0] => Array ( [col1] => asd)
)
[table3] => Array
(
[0] => Array ( [col1] => asd)
)
)