多表连接查询

时间:2012-12-19 11:59:02

标签: sql join

我有两个包含多个连接的表,例如:

第一个表格:Tbl_Flights,它包含字段City_FromCity_To,其中包含城市的密钥。 此外,还有一个名为Tbl_Cities的表,它具有唯一的计数字段和城市名称字段。

如何创建一个查询,可以打印出来的Tbl_Flights表中包含出发和到达城市名称的所有航班,例如:

From               To
------------------------------
Moscow             New York
Amsterdam          Paris
Helsinki           Tallin

double INNER JOIN能否解决问题?

2 个答案:

答案 0 :(得分:3)

  

双INNER JOIN能解决问题吗?

是的,确实如此。但它们是同一个表INNER JOIN的两个Cities,因此您可以将CiteName列选为两个不同的列Fromto

像这样:

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;

SQL Fiddle Demo

这会给你:

| 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