使用派生表从具有相同名称的不同表中选择列

时间:2019-12-23 22:59:27

标签: mysql mysql-workbench

我正在尝试提取名称为“ BEIJING”的所有可能的机场,但是由于“ Airplanes.name”和“ Airport.name”,我一直收到列名重复的错误。如何更改逻辑?

SELECT * FROM 
(SELECT Airplanes.name, Airport.name
FROM Airplanes, Airport
WHERE Airplanes.Airport = Airport.id) RESULT
WHERE RESULT.name = "BEIJING";```

1 个答案:

答案 0 :(得分:0)

只需将列别名添加到您的子查询中:

SELECT * FROM 
(SELECT Airplanes.name AS airplane, Airport.name AS airport
FROM Airplanes, Airport
WHERE Airplanes.Airport = Airport.id) RESULT
WHERE RESULT.airport = "BEIJING"

请注意,您实际上应该更新为现代JOIN语法:

SELECT * FROM 
(SELECT Airplanes.name AS airplane, Airport.name AS airport
FROM Airplanes
JOIN Airport ON Airplanes.Airport = Airport.id) RESULT
WHERE RESULT.airport = "BEIJING"