MySQL查询-在结果中生成数组


MySQL Query - produce array within result

我想在一个查询中选择订单并将其项目附加到它们上(现在我正在选择订单,然后使用单独的查询选择order_items-事实证明,这对大量订单来说非常慢…

订单:id |名称|总

order_items:id | order_id |价格|数量

order_items_info:id | order_id | order_item_id | tracking_no

我最不想做的事情是:将order_items_info表添加到项数组中。

$orders = array(
    array(
        'id' => '',
        'name' => '',
        'items' => array(
            array(
                'order_item_id' => '',
                'price' => '',
                'qty' => '',
                'item_info' => array()
            ),
            array(
                'order_item_id' => '',
                'price' => '',
                'qty' => '',
                'item_info' => array()
            ),
            ...
        )
    )
);
SELECT o.id,name,total,item_info,price,qty FROM orders o 
JOIN order_items oi ON o.id=oi.order_id
JOIN order_items_info oii ON oii.order_id=o.id
AND oii.order_item_id=oi.id 

在你发布你的餐桌信息之前,这只是一个疯狂的猜测。

从订单中选择*加入(orders.id=order_id)上的order_items