【问题标题】:Return SQL one to many / one to many all in one PHP array / object?在一个 PHP 数组/对象中返回 SQL 一对多/一对多?
【发布时间】:2011-06-02 18:23:21
【问题描述】:

tbl_customers
customer_id INT
...
...

tbl_orders
order_id
customer_id

tbl_orders_products
产品编号
order_id

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

预期结果:

数组(

[customer_id] => 1,
[订单] => 数组(

[0] => 数组(

[order_id] => [1],
[产品] => 数组(

[0] => 数组(

[产品名称] => '小部件')

)
)
)

【问题讨论】:

    标签: php sql one-to-many


    【解决方案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
    

    然后您可以将其格式化为所需的数组。

    【讨论】:

    • 感谢您的回复。我可以按照您的说明进行操作,但是是否可以在结果中将它们作为数组返回,因此您的示例是所有一行,最后一列为数组(product_id_1、product_id_2 等)?也许是嵌套查询或子查询,或者这是不可能的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2017-07-12
    • 2015-10-11
    • 2013-07-07
    • 2014-12-14
    • 1970-01-01
    相关资源
    最近更新 更多