在一个PHP数组/对象中将SQL返回一对多/一对多?

时间:2011-06-02 18:23:22

标签: php sql one-to-many

tbl_customers
customer_id INT
...
...

tbl_orders
order_id
customer_id

tbl_orders_products
product_id
order_id

假设我想访问一位客户在所有订单上订购的所有产品?
是否可以使用1个SQL查询(MySQL数据库)在一个PHP数组中返回?

预期结果:

  

数组(

     
    

[customer_id] => 1,
    [orders] =>数组(

         
      

[0] =>数组(

             
        

[order_id] => [1],
        [products] =>数组(

                 
          

[0] =>数组(

                     
            

[product_name] => '小部件')

          
        
      
             


      )
      )

    
  

1 个答案:

答案 0 :(得分: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
然后,您可以将其格式化为所需的数组。