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

2019-07-08 21:54:33 +08:00
 huyinjie

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

2553 次点击
所在节点    问与答
6 条回复
loading
2019-07-08 22:15:44 +08:00
你要的结果是把 flight data 表里面的 ata 变成实际城市名称?
我烧啃脑都没理解你要的结果。
关键字:sql 一对多
loading
2019-07-08 22:16:40 +08:00
是多对多吧,反正就一个意思了。
huyinjie
2019-07-08 22:18:13 +08:00
@loading 对 加两列 把 IATA 变成城市名称
akira
2019-07-08 22:26:14 +08:00
@huyinjie 那你说反了啊,是在第二个表加两列啊
huyinjie
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
2019-07-09 13:52:48 +08:00
记得给 flights_data.fromAirportIATA 做个索引。

另外,之前我做航班数据处理的时候 有遇到一种情况,有些航班是 A->B->C 这样飞行的,在中途城市 B 可以上下乘客,这种情况你这个表似乎处理不了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/581146

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX