两个独立连接的mysql查询

tktrz96b  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(347)

有人知道这个问题的解决办法吗?共有3个表:订单、订单组和门店。
我要列出订单,以及下订单的商店的名称,以及订单将在哪里交货。
我留着钥匙 from_store_id ,和 to_store_idorder_groups table
列出这些订单很简单,我只需将订单组加入订单,然后选择名称, from_shop_id 以及 to_shop_id ,但问题是我想要的是存储的名称而不是id,并且存储的名称被放在不同的表(stores)中
我说的是:

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
ccrfmcuu

ccrfmcuu1#

你只需要加入两次相同的表!

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

相关问题