首页 > 解决方案 > SQL查询两次加入同一个父表

问题描述

我的数据库中有两个表:

餐桌航班:

ID
ID_Destination
ID_Source

表位置:

ID (that relatesto the id of source and destination)
Name
Country
Etc..

现在我需要一个查询,它可以为我提供从某个来源到某个目的地的所有航班的信息。我在查询编辑器中尝试了很长时间,但内部连接在这里不起作用。我应该改用什么?

因此,我需要类似的东西:

1st flight: Naples Italy |London England
2nd flight: Rome Italy | Mailand Italy
etc..

标签: sqlsql-servertsql

解决方案


下一个内部连接应该在这里工作:

SELECT f.ID, CONCAT(sl.Name, ' ', sl.Country), CONCAT(dl.Name, ' ', dl.Country)
FROM Flights as f
INNER JOIN Locations as sl ON sl.ID = f.ID_Source
INNER JOIN Locations as dl ON dl.ID = f.ID_Destination

函数“CONCAT”是MySql的一部分,所以这个函数不能适用于所有数据库,没有它只是:

SELECT f.ID, sl.Name, sl.Country, dl.Name, dl.Country
FROM Flights as f
INNER JOIN Locations as sl ON sl.ID = f.ID_Source
INNER JOIN Locations as dl ON dl.ID = f.ID_Destination

推荐阅读