V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
huyinjie
V2EX  ›  问与答

请问 SQL 中如何将查询的结果作为新的列~

  •  
  •   huyinjie · 2019-07-08 21:54:33 +08:00 · 2553 次点击
    这是一个创建于 1969 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有两张表,airports_data 存了某个机场的 IATA 编号信息作为主键,flight_data 存了航班的起飞机场的 IATA 编号及降落机场的 IATA 编号。
    想要查询起飞机场的 IATA 名称及降落机场的 IATA 名称插入到第一张表 airports_data 中
    毫无头绪,试了几种 SQL 查询方法都失败了~~

    IMG

    第 1 条附言  ·  2019-07-08 22:31:30 +08:00
    抱歉,发现说反了,改成如下~
    想要查询起飞机场的 IATA 名称及降落机场的 IATA 名称,并插入到第二张表 flight_data 中
    6 条回复    2019-07-09 13:52:48 +08:00
    loading
        1
    loading  
       2019-07-08 22:15:44 +08:00 via Android
    你要的结果是把 flight data 表里面的 ata 变成实际城市名称?
    我烧啃脑都没理解你要的结果。
    关键字:sql 一对多
    loading
        2
    loading  
       2019-07-08 22:16:40 +08:00 via Android   ❤️ 1
    是多对多吧,反正就一个意思了。
    huyinjie
        3
    huyinjie  
    OP
       2019-07-08 22:18:13 +08:00 via iPhone
    @loading 对 加两列 把 IATA 变成城市名称
    akira
        4
    akira  
       2019-07-08 22:26:14 +08:00   ❤️ 1
    @huyinjie 那你说反了啊,是在第二个表加两列啊
    huyinjie
        5
    huyinjie  
    OP
       2019-07-09 10:11:10 +08:00
    使用如下代码,已解决~
    ```sql
    select flightNumber, fromAirportIATA, toAirportIATA,
    s1.city as 'fromAirportCity', s2.city as 'toAirportCity',
    s1.airportName as 'fromAirportName', s2.airportName as 'toAirportName',
    aircraftRegistrationCode, aircraftModel, airlineICAO
    from flights_data left join airports_data s1 on flights_data.fromAirportIATA = s1.airportIATA
    left join airports_data s2 on flights_data.toAirportIATA = s2.airportIATA
    ```
    akira
        6
    akira  
       2019-07-09 13:52:48 +08:00
    记得给 flights_data.fromAirportIATA 做个索引。

    另外,之前我做航班数据处理的时候 有遇到一种情况,有些航班是 A->B->C 这样飞行的,在中途城市 B 可以上下乘客,这种情况你这个表似乎处理不了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:40 · PVG 17:40 · LAX 01:40 · JFK 04:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.