SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.12.2015 20:30:20

Undeadline
Участник
Зарегистрирован: 23.12.2015
Сообщений: 3

Не могу сформулировать запрос

Всем привет, есть проблема с отсутствием интеллекта.

Собственно суть: есть пользователь у которого есть заказы. У заказов есть продукты, которые попадают в заказ через связующую таблицу.

Меня интересует запрос: получить все заказы со списком продуктов у конкретного пользователя.

Есть таблицы:

Users:
user_id | name
1         |  john
2         |  david

Orders:
order_id | user_id;
1          |  1
2          |  2

Products:
product_id  | name
1              |  knife
2              |  pistol

Order_products:
order_id | product_id
1          |  1
1          |  2
2          |  1
2          |  2

Неактивен

 

#2 23.12.2015 20:33:53

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу сформулировать запрос

select НУЖНОЕ from Order_procucts op JOIN Products p ON op.product_id = p.id JOIN Orders o ON op.order_id = o.id WHERE o.user_id = 1


выберет у пользователя с id  = 1


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 23.12.2015 20:50:26

Undeadline
Участник
Зарегистрирован: 23.12.2015
Сообщений: 3

Re: Не могу сформулировать запрос

Получается мне прилетают отдельные массивы в которых: Order_id 1 => Product_id 1, Order_id 1 => Product_id 2, Order_id 2 => Product_id 1.
А можно ли как то сгруппировать так чтобы получилось: Order_id 1 => [Product_id 1, Product_id 2], Order_id 2 => [Product_id 1] ?
Если такое возможно подскажите пожалуйста, а то голова уже 2 день кипит.

Неактивен

 

#4 23.12.2015 22:26:41

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу сформулировать запрос

http://dev.mysql.com/doc/refman/5.7/en/ … oup-concat
в помощь.

Если не осилите - создайте пример с таблицами и данными на sqlfiddle и приведите пример того результата, который хочется получить.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 23.12.2015 23:34:44

Undeadline
Участник
Зарегистрирован: 23.12.2015
Сообщений: 3

Re: Не могу сформулировать запрос

Да, теперь получилось так как нужно. Теперь я получил все продукты для каждого заказа.
Вот только вместо продуктов проставляются индексы 1,2,1.. вместо этих индексов можно как то получить сам продукт?

Неактивен

 

#6 23.12.2015 23:45:11

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Не могу сформулировать запрос

Телепатия, увы, никогда не была моей сильной стороной... ( с )
Создайте правда что пример на sqlfiddle, покажите Ваш запрос и тот результат, который Вы хотите получить.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson