我有以下表格
Table 'Flight' (
number int,
dest VARCHAR(4),
arrTime Date,
Foreign Key(dest) references Airport(code)
)
和
Table 'Airport' (
code VARCHAR(4),
PRIMARY KEY(code)
)
假设我有以下飞行数据
'Flight'
2,'TX','10/5/2015 1:32'
3,'NY','10/5/2015 4:20'
1,'TX','10/5/2015 1:20'
4,'NY','10/5/2015 4:21'
和机场
'TX'
'NY'
对于每个机场,我想要检索连续到达机场的所有航班号,这样几乎就像我为航班表提供的数据一样。我正在处理一个子查询,但我无法获得所需的输出......
1,'TX','10/5/2015 1:20'
2,'TX','10/5/2015 1:32'
3,'NY','10/5/2015 4:20'
4,'NY','10/5/2015 4:21'
我尝试过以下但我无法获得正确的输出
SELECT Airport.code, Timez
FROM Flight JOIN Airport
ON Flight.dest = Airport.code
ORDER BY DATE(arrTime) DESC as Timez
帮助将不胜感激
答案 0 :(得分:1)
使用ORDER BY Airport.code, Flight.arrTime
。
将同一机场的所有航班分类,然后在这些航班内按时间排序。
请勿使用DESC
,这会使它们按相反的时间顺序排列。
答案 1 :(得分:0)
我想你想要这个得到你指出的输出:
SELECT Flight.number n, Airport.code c, Flight.arrTime t
FROM Flight JOIN Airport
ON Flight.dest = Airport.code
ORDER BY c, t DESC
无需在DATE转换arrTime
字段。
然而,由于DATE格式的arrTime
字段无法保留该信息,因此您无法获得完整的日期和时间。你需要一个DATETIME或TIMESTAMP字段。
答案 2 :(得分:0)
SELECT Airport.code,Flight.arrTime 从航班JOIN机场 在Flight.dest = Airport.code ORDER BY Airport.code,Flight.arrTime ASC