我有两个包含多个连接的表,例如:
第一个表格:Tbl_Flights,它包含字段City_From
和City_To
,其中包含城市的密钥。
此外,还有一个名为Tbl_Cities
的表,它具有唯一的计数字段和城市名称字段。
如何创建一个查询,可以打印出来的Tbl_Flights
表中包含出发和到达城市名称的所有航班,例如:
From To
------------------------------
Moscow New York
Amsterdam Paris
Helsinki Tallin
double INNER JOIN
能否解决问题?
答案 0 :(得分:3)
双INNER JOIN能解决问题吗?
是的,确实如此。但它们是同一个表INNER JOIN
的两个Cities
,因此您可以将CiteName
列选为两个不同的列From
,to
。
像这样:
SELECT
f.FlightName,
FromCities.cityName "From",
ToCities.CityName "To"
FROM Tbl_Flights f
INNER JOIN Cities FromCities ON f.City_From = FromCities.CityID
INNER JOIN Cities ToCities ON f.City_To = ToCities.CityID;
这会给你:
| FLIGHTNAME | FROM | TO |
-------------------------------------
| Flight1 | Moscow | New York |
| Flight2 | Amsterdam | Paris |
| Flight3 | Helsinki | Tallin |
答案 1 :(得分:0)
的内容
SELECT f.FlightName, f.City_From, f.City_To
FROM Tbl_Flights f
将是最基本的列出每个航班以及它来自哪个城市以及它去哪个城市。
如果您需要从查询中获得更复杂的回报,请告诉我,我们将很乐意为您提供帮助。
编辑:
在查看额外信息后,我认为以下内容应符合您的要求: http://www.sqlfiddle.com/#!2/5d32c/17所以马哈茂德·加迈尔似乎很有观点:)
SELECT f.FlightName, c.CityName as 'from', c1.CityName as 'to'
FROM Tbl_Flights f
join Tbl_Cities c on c.cityid = f.City_From
join Tbl_Cities c1 on c1.cityid = f.City_To