2011-06-02 43 views
2

tbl_customers
customer_id INT
...
...
在一個PHP數組/對象中返回一對多/一對多的SQL?

tbl_orders
order_id
customer_id

tbl_orders_products
product_id
order_id

假設我想通過一個客戶訪問所有訂購的所有訂單的產品?
是否有可能使用1個SQL查詢(MySQL db)在一個PHP數組中返回?

預期結果:

陣列(

[CUSTOMER_ID] => 1,
[訂單] =>數組(

[0] =>數組(

[order_id] => [ 1],
[產品] =>數組(

[0] =>數組(

[PRODUCT_NAME] => '插件')



回答

1

這是可能的。

,你可以使用左側聯接各表之間,但各行會擁有所有的用戶信息和訂單信息的,與該項目的具體信息

example result rows 
user_id, username, order_id, product_id_1 
user_id, username, order_id, product_id_2 
user_id, username, order_id, product_id_3 

沿,那麼你可以格式化成所需的陣列此。

+0

謝謝你的回覆。我可以按照您的顯示進行操作,但可以將結果作爲數組返回,以便您的示例中的最後一列爲數組(product_id_1,product_id_2等)。也許嵌套的查詢或子查詢或者是不可能的? – csi 2011-06-04 19:00:27