Oracle SQL:如何将一张表的两列关联到另一张表的同一列
SQL查询:关联Trip与Location表获取地点名称
你需要两次关联Location表,分别匹配出发地(origin)和目的地(destination)的location_ID,从而获取对应的地点名称。以下是具体的查询语句:
SELECT t.trip_ID, t.mileage, t.budget, o.location_name AS Origin, d.location_name AS Destination FROM Trip t JOIN Location o ON t.origin = o.location_ID JOIN Location d ON t.destination = d.location_ID;
补充说明:
- 给两张关联的Location表分别起别名
o(对应出发地)和d(对应目的地),避免字段冲突。 - 使用
AS关键字给location_name指定别名,让结果列符合你需要的名称(Origin、Destination)。 - 如果存在Trip表中origin或destination为NULL的情况,想要保留这些记录,可以把
JOIN换成LEFT JOIN,还能通过COALESCE给NULL值设置默认显示文本:
SELECT t.trip_ID, t.mileage, t.budget, COALESCE(o.location_name, '未知地点') AS Origin, COALESCE(d.location_name, '未知地点') AS Destination FROM Trip t LEFT JOIN Location o ON t.origin = o.location_ID LEFT JOIN Location d ON t.destination = d.location_ID;
内容的提问来源于stack exchange,提问作者Inigo CA
相关产品推荐
相关产品推荐

