SQL:如何多次加入同一个表?

时间:2018-02-10 15:21:49

标签: mysql sql select join left-join

我有两个表,我需要为两个不同的列加入第二个表两次。表格格式如下:

表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

1 个答案:

答案 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