2011-06-02 39 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