我有目前的兩個表。我想在一個查詢中檢索所有相應的訂單行。MySQL GROUP BY:如何返回多行?
我當前的代碼如下:
$query = '
SELECT * FROM table_a
JOIN table_b ON table_b.order_id = table_a.order_id
WHERE table_a.order_id = '1'
GROUP BY table_a.order_id
';
$result_prepare = $this->DB->prepare($query);
$result_prepare->execute();
$result = $result_prepare->fetchAll(PDO::FETCH_ASSOC);
$query_result = array('result'=>$result);
print_r($query_result);
輸出結果只返回第一行:
Array
(
[0] => Array
(
[order_id] => 1
[row_id] => 1
[value] => 100
)
}
我想輸出結果返回分組的所有行按行。
Array
(
[0] => Array
(
[order_id] => 1
[rows] => Array
(
[0] => Array
(
[row_id] => 1
[value] => 100
)
[1] => Array
(
[row_id] => 2
[value] => 101
)
)
)
}
我該如何做到這一點?我需要更改我的SQL查詢。
你不能在sql中有這樣的輸出。您將始終擁有每行具有相同數量列的行。一列中不能有多個值。 –
@VolkanUlukut是正確的 - SQL查詢將爲每一行返回3列,並且您的PHP顯示邏輯負責只在更改時打印'order_id'。 SQL本身就像SELECT SELECT order_id,row_id,value FROM TableB那樣簡單ORDER BY order_id,row_id' –
請注意SQL用於關係集邏輯,而不是程序/數組。嘗試在結果集表單中寫出你想要的輸出。你的問題很混亂,我不明白你想要什麼(聚合,獨特,加入,?) – jean