我們有3張桌子。如何正確選擇幾個一對多的行?
1)訂單
PK
ORDER_ID
2)Order_Products
PK | FK |列| Column
order_product_id | order_id | product_id |名稱|數量
3)Order_Product_Components
PK | FK |列|列| Column
order_product_component_id | order_product_id | stock_id |名稱|數量
表2和表3具有一對多的關係。
因此,如果我們想要使用它們的組件獲得訂購產品數組,我們可以使用哪種最佳查詢?
最後的結果應該是這種格式(如果我們有1種產品有兩種成分):
$products = array(
array(
' 'product_id' => x,
'name' => x,
'quantity' => x,
'stocks' => array(
array(
'stock_id' => x,
'name' => x,
'quantity' => x),
array(
'stock_id' => x,
'name' => x,
'quantity' => x)));
據我所知,MySQL將返回一行數組。我不認爲有什麼辦法可以做一個嵌套數組。您需要使用多個查詢來檢索數據並在代碼中生成結果。 – CargoMeister
只是fyi,你不能用1查詢從sql中取出多維數組。訂單數據需要1個,訂單附加的項目需要1個。 – castis
我明白這一點。所以我的問題是做這件事的最好方法是什麼?分組,加入,...? –