2013-12-10 5 views
0

Я хотел бы в один запрос выбирать заказы и прикреплять их к ним (прямо сейчас я выбираю заказы, а затем используя отдельный запрос, выбирая order_items - это доказав очень медленно на большое количество заказов ...MySQL Query - произвести массив в результате

заказов: идентификатор | имя | всего

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() 
      ), 
      ... 
     ) 
    ) 
); 
+1

Что случилось с JOIN? –

+0

Для таблицы order_items требуется поле item_id, которое присоединяется к вашей таблице элементов. –

+0

У этого есть один, но это сделало это немного сложным, поэтому я его оставил. – Wallter

ответ

1
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 

Просто дикая догадка, пока не опубликовать данные таблицы.

+0

Я забыл добавить вторую часть вопроса: добавление order_items_info в массив элементов? – Wallter

+0

Я не вижу ничего order_items_info в любом месте ваших таблиц. – Mihai

+0

Извините, это было немного запутанно. Я обновил его, чтобы сделать немного больше смысла. – Wallter

0

выберите * из заказов присоединиться order_items на (orders.id = order_id)

Смежные вопросы