首页 > 解决方案 > 在 SQL 中的同一查询中引用不同的 id

问题描述

我需要使用 LEFT JOIN 从多个表中提取大量列。我的起点是订单表,我从“Address_table”中获取供应商名称。然后我添加另一个包含订单详细信息的表格,然后添加每个订单详细信息的运输信息。

我的问题是我需要从“Address_table”中带来不同的记录,以将运输表中的其他 ID 详细说明为“origin_id”和“destination_id”。

换句话说,“address_id”、“origin_id”和“destination_id”都是来自“Address_table”的记录。我带了第一个与供应商相关的,如何找回另外两个?

例子

提前致谢

标签: sql

解决方案


您的问题在表格及其关系方面并不完全清楚。然而,问题是什么很清楚。您需要使用不同的列两次连接同一个表。

为此,您需要使用表别名。例如,您可以这样做:

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. 通过这种方式,您可以区分如何选择正确的列并使连接按照您的需要工作。


推荐阅读