这部分要求您编写几个表的简单内连接。 编写一个SQL语句,返回伦敦所有机场的数据集。对于每个机场,数据集必须包含城市名称,国家,机场代码及其纬度和长度
我的回答:
SELECT City.name, Country.name, Airport.code, Airport.latitude,
Airport.longtitude
FROM City, Airport, Country
WHERE Country.id = City.Country
AND Airport.city = City.id
AND City.name = "London"
我是对的吗?我是否需要在代码上写上“INNER JOIN”或“ON”这样的关键字?
答案 0 :(得分:1)
没关系。
SELECT City.name, Country.name, Airport.code, Airport.latitude, Airport.longtitude
FROM City, Airport, Country
WHERE
Country.id = City.Country
AND Airport.city = City.id
AND City.name = "London"
但也可以像这样写
SELECT City.name, Country.name, Airport.code, Airport.latitude, Airport.longtitude
FROM
City
inner join Country ON Country.id = City.Country
inner join Airport ON Airport.city = City.id
WHERE
City.name = "London"
答案 1 :(得分:1)
鉴于该问题要求“简单的内部联接”,那么是的,您需要使用这些关键字! INNER JOIN
用于链接具有匹配列的表。例如,如果一个表包含有关城市的详细信息,则另一个表可以通过其ID列引用它,而使用INNER JOIN
的查询可以从两者中检索详细信息。如果城市细节发生变化,则只需在一个表格中进行更改。
在您的示例中,查询看起来像这样:
SELECT
c.name,
cty.name,
ap.code,
ap.latitude,
ap.longtitude
FROM
Airport ap
INNER JOIN City c ON ap.city = c.id
INNER JOIN Country cty ON c.Country = cty.id
WHERE
c.name = "London"
答案 2 :(得分:0)
SELECT City.name, Country.name, Airport.code, Airport.latitude,
Airport.longtitude
from Airport
inner join city on Airport.city = City.id
inner join Country ON Country.id = City.Country
where
city.name='London'