使用联接替换 table 列
Substituting table columns using Joins
我不确定标题是否足够清楚。我想要的东西很简单,但实现起来却很复杂(也许我想多了)。我认为联接有解决方案,尽管我不知道如何构造联接。
假设我们有两个表,cities 和 flight_profiles:
城市
城市名称 |城市代码
--------------+------------
城市 a | 1
城市 b | 2
flight_profiles
flight_numb |来自 |至
--------------+--------+-----
701 | 1 | 2
702 | 2 | 1
并且查询应该显示以下所需的输出
期望的输出
flight_numb |来自 |至
--------------+------------+--------
701 |城市 a |城市 b
702 |城市 b |城市a
如何构造此连接?
flight_profiles
table已有路线,您只需将城市代码替换为名称即可。正如您所建议的那样,这可以通过使用连接来完成 - 对于您要替换的每个代码一次:
SELECT flight_numb, cityfrom.name, cityto.name
FROM flight_profiles fp
JOIN cities cityfrom ON fp.from = cityfrom.citycode
JOIN cities cityto ON fp.to = cityto.citycode
您需要使用不同的别名两次加入cities
table
select f.flight_numb,
c_from.city_name as c_from,
c_to.city_name as c_to
from flight_profiles f
join cities c_from on c_from.city_code = f.from
join cities c_to on c_to.city_code = f.to
我不确定标题是否足够清楚。我想要的东西很简单,但实现起来却很复杂(也许我想多了)。我认为联接有解决方案,尽管我不知道如何构造联接。
假设我们有两个表,cities 和 flight_profiles:
城市
城市名称 |城市代码
--------------+------------
城市 a | 1
城市 b | 2
flight_profiles
flight_numb |来自 |至
--------------+--------+-----
701 | 1 | 2
702 | 2 | 1
并且查询应该显示以下所需的输出
期望的输出
flight_numb |来自 |至
--------------+------------+--------
701 |城市 a |城市 b
702 |城市 b |城市a
如何构造此连接?
flight_profiles
table已有路线,您只需将城市代码替换为名称即可。正如您所建议的那样,这可以通过使用连接来完成 - 对于您要替换的每个代码一次:
SELECT flight_numb, cityfrom.name, cityto.name
FROM flight_profiles fp
JOIN cities cityfrom ON fp.from = cityfrom.citycode
JOIN cities cityto ON fp.to = cityto.citycode
您需要使用不同的别名两次加入cities
table
select f.flight_numb,
c_from.city_name as c_from,
c_to.city_name as c_to
from flight_profiles f
join cities c_from on c_from.city_code = f.from
join cities c_to on c_to.city_code = f.to