如何在同一SQL查询中两次获取airports表city列并替换航班机场ID?
一次查询获取出发/到达城市的解决方案
要在同一SQL查询里把origin_airport_id和destination_airport_id替换为对应的城市名,核心方法是两次关联airports表,并给每个关联表分配不同别名来区分,避免字段冲突。
完整的SQL语句如下:
SELECT origin_ap.city AS origin_city, dest_ap.city AS destination_city, flights.hour, flights.minute FROM flights JOIN airports AS origin_ap ON flights.origin_airport_id = origin_ap.id JOIN airports AS dest_ap ON flights.destination_airport_id = dest_ap.id WHERE flights.year = 2021 AND flights.month = 7 AND flights.day = 28;
说明
- 给两次关联的
airports表分别起短别名origin_ap(出发机场)和dest_ap(到达机场),清晰区分不同关联逻辑 - 使用
AS给查询出的城市字段指定别名,让结果集的列名更直观,避免出现两个city列导致的混淆 - 保留原查询中的
hour和minute字段,同时完全替换掉原有的机场ID字段
内容的提问来源于stack exchange,提问作者parmer_110
相关产品推荐
相关产品推荐

