gpt4 book ai didi

MySQL JOIN 两行合二为一?

转载 作者:行者123 更新时间:2023-11-29 13:41:36 24 4
gpt4 key购买 nike

如何进行查询以选择 1 行中的大部分数据,但连接另一列中的数据?

一张表“flight_schedules”有:

Flight | Dep_City | Arr_ City | Dep_Time | Arr_Time
---------------------------------------------------
901 | Chicago | Miami | 0600 | 0900
902 | Miami | Chicago | 0945 | 1300

另一个表“机场”有:

City     | Airport_Code
-----------------------
Chicago | KORD
Miami | KMIA

我的查询 atm 是这样的:

SELECT ap.Airport_Code as dep_code, ap.Airport_Code as arr_code, fs.* FROM flight_schedules fs JOIN aiports ap ON (fs.Dep_City=ap.City OR fs.Arr_City=ap.City) ORDER BY flight_number

我知道这会给我每个航类 2 行,如下所示:

arr_code | dep_code | Flight | Dep_City | Arr_ City | Dep_Time | Arr_Time
-------------------------------------------------------------------------
KORD | KORD | 901 | Chicago | Miami | 0600 | 0900
KMIA | KMIA | 901 | Chicago | Miami | 0600 | 0900
KMIA | KMIA | 902 | Miami | Chicago | 0945 | 1300
KORD | KORD | 902 | Miami | Chicago | 0945 | 1300

我真正追求的是:

arr_code | dep_code | Flight | Dep_City | Arr_ City | Dep_Time | Arr_Time
-------------------------------------------------------------------------
KORD | KMIA | 901 | Chicago | Miami | 0600 | 0900
KMIA | KORD | 902 | Miami | Chicago | 0945 | 1300

有没有办法调整我的查询来实现这一点,或者我注定要在 Flight_schedules 表中包含机场代码(这将需要一些脚本)?或者...访问数据库中的 Flight_schedules 表中的每个航类(大约 3000 个)?虽然我可以这样做,但查询解决方案会更优雅并且使用更少的资源。

预先感谢您的帮助。

最佳答案

您想加入两次表以分别获取到达城市和出发城市的代码:

SELECT apdep.Airport_Code as dep_code, aparr.Airport_Code as arr_code, fs.*
FROM flight_schedules fs JOIN
aiports apdef
ON fs.Dep_City = apdef.City join
airports aparr
on fs.Arr_City = aparr.City
ORDER BY flight_number;

编辑:

如果您要查找每个航类一行,请添加 where 子句:

SELECT apdep.Airport_Code as dep_code, aparr.Airport_Code as arr_code, fs.*
FROM flight_schedules fs JOIN
aiports apdef
ON fs.Dep_City = apdef.City join
airports aparr
on fs.Arr_City = aparr.City
WHERE dep_city < arr_city
ORDER BY flight_number;

这可确保该对按字母顺序排列。 。 。因此输出中只会出现一对。

关于MySQL JOIN 两行合二为一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com