使用连接替换表列

时间:2015-08-31 23:09:13

标签: sql select postgresql-8.4

我不确定标题是否足够清晰。我想要的是如此简单而复杂的实现(也许我在想它)。我认为联接有解决方案,但我不知道如何构建连接。

说我们有两个表,城市和flight_profiles:

城市

城市名称|城市代码
------------- + --------------
城市a 1
城市b | 2

flight_profiles

flight_numb |来自|到 --------------- + ------- + -----
701 | 1 | 2
702 | 2 | 1

查询应显示以下所需的输出

期望的输出

flight_numb |从|到 --------------- + ---------- + --------
701 |城市a城市b 702 |城市b |城市a

如何构建此连接?

2 个答案:

答案 0 :(得分:1)

flight_profiles表已经有路由,您只需要用名称替换城市代码。正如您所建议的那样,这可以通过使用连接来完成 - 对于您要替换的每个代码,只需执行一次:

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

答案 1 :(得分:0)

您需要使用不同的别名

两次加入cities
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