Mysql Query с двумя отдельными соединениями - PullRequest
0 голосов
/ 15 ноября 2018

Кто-нибудь знает решение этой проблемы? Есть 3 таблицы: заказы , группы заказов и магазины .
Я хочу перечислить заказы с названиями магазинов, в которых был размещен заказ и куда будет доставлен заказ.

Я храню from_store_id и to_store_id в таблице order_groups

Перечислить эти ордера было бы просто, я просто оставил присоединиться к order_groups до ордеров и выбрал имя, from_shop_id и to_shop_id, но проблема в том, что я хочу название магазина, а не его идентификатор, а названия магазинов помещаются в другую таблицу (магазины)

Вот что я имею в виду:


Table orders
id  group_id    name            madeup_id
1     11        johnny cash         1
2     12        billy bob           1
LEFT JOIN order_groups on order_groups.id = orders.group_id
Table order_groups
id   from_store_id   to_store_id
11     55               56
12     56               55            
Table stores
id    store_name
55     thisstore
56     thatstore
The result im looking for is:
   name         from_store   to_store
1.johhny cash   thisstore, thatstore
2.billy bob     thatstore, thisstore

Утверждение, которое у меня есть:


SELECT 
orders.name, something as from_store, something as to_store
FROM orders
LEFT JOIN order_groups on order_groups.id = orders.group_id

somehow join stores on the order_groups.from_store_id = stores.id

WHERE orders.madeup_id = 1

Есть идеи, как выбрать и присоединить имена магазинов к запросу?

Еще один вопрос. Я на самом деле хочу перечислить два вида заказов в одном запросе из разных таблиц, я на правильном пути с этой структурой?


SELECT a,b FROM a LEFT JOIN b ON b.something=a.something WHERE something 
UNION ALL
SELECT a,b FROM c LEFT JOIN c ON c.something=a.something WHERE something

1 Ответ

0 голосов
/ 15 ноября 2018

Вам нужно только 2 раза присоединиться к одному столу!

SELECT 
orders.name, fromStore.store_name as from_store, toStore.store_name as to_store
FROM orders
LEFT JOIN order_groups on order_groups.id = orders.group_id
left join stores fromStore on the order_groups.from_store_id = fromStore.id
left join stores toStore on the order_groups.to_store_id = toStore.id
WHERE orders.madeup_id = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...