mysql - 具有两个单独连接的 Mysql 查询
问题描述
有谁知道这个问题的解决方案?有 3 个表:orders、order_groups和stores。
我想列出订单,下订单的商店的名称以及订单将在哪里交付。
我将from_store_id
, 和保留to_store_id
在order_groups
表中
列出这些订单很简单,我只是将order_groups加入到orders中,然后选择名称from_shop_id
和to_shop_id
,但问题是我想要商店的名称而不是 id,并且商店名称放在不同的表中(商店)
这就是我所说的:
表订单 id group_id 名称 madeup_id 1 11 约翰尼现金 1 2 12 比利鲍勃 1
LEFT JOIN order_groups on order_groups.id = orders.group_id
表 order_groups id from_store_id to_store_id 11 55 56 12 56 55
餐桌商店 id 商店名称 55 本店 56 那家店
我正在寻找的结果是: 名称 from_store to_store 1.johhny兑现thisstore,thatstore 2.billy bob thatstore,这家商店
我还没有声明:
选择 orders.name,类似于 from_store,类似于 to_store 来自订单 左加入 order_groups on order_groups.id = orders.group_id 以某种方式加入 order_groups.from_store_id = stores.id 上的商店 在哪里 orders.madeup_id = 1
知道如何选择商店名称并将其加入查询吗?
还有一个问题。我实际上也想在一个查询中列出来自不同表的两种订单,我在这个结构的正确轨道上吗?
SELECT a,b FROM a LEFT JOIN b ON b.something=a.something WHERE something 联合所有 SELECT a,b FROM c LEFT JOIN c ON c.something=a.something WHERE something
解决方案
你只需要加入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
推荐阅读
- android - 如何在文档范围内使用 setInterval
- python - 如何将 CP-SAT 公式(在 python 中)中的目标指定为所有决策变量值的最大值的最小化?
- css - Blazor css 如何显示无法重新连接到服务器。重新加载页面以恢复功能标题
- json - 无法将多个 Jsonb 行合并为一行
- c - 理解以下程序的问题
- python - 使用连接通过连接表获取值
- google-calendar-api - 在不添加 Google Meet 视频会议的情况下在 Google 日历中创建活动
- javascript - JavaScript / TypeScript 上是否有“节点”类型?ts(2345)
- javascript - 我添加了图像但没有出现
- javascript - Javascript 中的生成器是生成迭代器还是可迭代对象?