sql - 在 SQL 中的同一查询中引用不同的 id
问题描述
我需要使用 LEFT JOIN 从多个表中提取大量列。我的起点是订单表,我从“Address_table”中获取供应商名称。然后我添加另一个包含订单详细信息的表格,然后添加每个订单详细信息的运输信息。
我的问题是我需要从“Address_table”中带来不同的记录,以将运输表中的其他 ID 详细说明为“origin_id”和“destination_id”。
换句话说,“address_id”、“origin_id”和“destination_id”都是来自“Address_table”的记录。我带了第一个与供应商相关的,如何找回另外两个?
提前致谢
解决方案
您的问题在表格及其关系方面并不完全清楚。然而,问题是什么很清楚。您需要使用不同的列两次连接同一个表。
为此,您需要使用表别名。例如,您可以这样做:
select *
from shipment s
left join address_table a on a.address_id = s.origin_id
left join address_table b on b.address_id = s.destination_id
在此示例中,该表address_table
与该表连接了两次shipment
;我们第一次使用a
作为别名,第二次使用b
. 通过这种方式,您可以区分如何选择正确的列并使连接按照您的需要工作。
推荐阅读
- java - 我应该用@Component 注释 pojo 类吗?
- javascript - 函数 .autocomplete 创建不需要的 div
- c++ - K-means 聚类中心每次运行都相同,尽管它是随机初始化的
- mean - emmeans 中所有预测的平均值
- c++ - 两个进程的 WinApi SpinLock 方法
- c# - Blazor - 此框架不支持“msxsl:script”元素,因为它不支持运行时代码生成
- javascript - 如何使用列表访问嵌套 json 中的数据?
- d3.js - 更改折线图中线条的颜色 vegalite
- c# - 简单发布并获取 C# WPF
- protocol-buffers - 编码和解码协议缓冲区任何类型的消息