我有两个表,我需要为两个不同的列加入第二个表两次。表格格式如下:
表1:trip_details
column type
name string
start_country_id int
end_country_id int
表2:country_info
column type
id int
country string
我想获得姓名,开始国家和结束国家。
这是我的尝试:
SELECT
trip_details.name AS "Name",
country_info.country AS "Start Country",
country_info.country AS "End Country"
FROM
trip_details
LEFT JOIN country_info ON country_info.id = trip_details.start_country_id
LEFT JOIN country_info ON country_info.id = trip_details.end_country_id
从我看到的,问题在于连接,因为我在Select子句中使用了“country_info.country”两次。这些情况的最佳方式/做法是什么?
修改
不确定是否有其他方法可以做到这一点,但这只是我的SQL查询的一部分所以我需要使用LEFT JOIN
答案 0 :(得分:2)
有两个join
条款是正确的方法。您只是缺少为它们提供不同的别名以区分这两者:
SELECT td.name AS "Name",
sci.country AS "Start Country",
eci.country AS "End Country"
FROM trip_details td
LEFT JOIN country_info sci ON sci.id = td.start_country_id
LEFT JOIN country_info eci ON eci.id = td.end_country_id