从第一个表开始连接2列

时间:2015-06-17 07:50:18

标签: mysql left-join

我对MySQL语法有疑问。 我有2张桌子

Name table
ID Routing start end
1  Route 1 RTM1  RTM5
2  Route 2 RTM1  RTM4
3  Route 3 RTM3  RTM2

Location table
ID Code Name  Address
1  RTM1 Test1 Address1
2  RTM2 Test2 Address2
3  RTM3 Test3 Address3
4  RTM4 Test4 Address4
5  RTM5 Test5 Address5

这当然是我使用的数据库的简化版本,但这符合我的问题。

所以我需要输出位置表中的名字。我该怎么办?我的左连接怎么样?

SELECT Routing, start, end
FROM name 
LEFT JOIN Location ON (not sure what here needs to come)
WHERE ID='1'

那么,如果我想按名称输出开头和结尾,我如何区分所需的2个位置?

编辑: 这是我期望的输出:

[Routing] => Route 1
[Start] => Test1
[End] => Test5

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,这是您正在寻找的查询:

SELECT
  n.ID,
  n.Routing,
  l1.Name AS start_name,
  l2.Name AS end_name
FROM
  Name AS n LEFT JOIN location AS l1 ON n.start=l1.Code
  LEFT JOIN location AS l2 ON n.end=l2.Code

(你必须加入位置表TWICE,使用两个不同的别名,例如l1和l2)