【发布时间】:2014-06-10 19:01:50
【问题描述】:
我有两张表大致如下:
Airports
uniqueID | Name
0001 | Dallas
Runways
uniqueID | AirportID | Length
000101 | 0001 | 8000
我正在执行如下所示的连接:
SELECT Airports.Name, Runways.Length FROM Airports, Runways
WHERE Airports.uniqueID==Runways.AirportID
显然,每条跑道只有一个机场,每个机场有 1..n 条跑道。
对于有多条跑道的机场,这给了我几行,一个用于该机场的每条跑道。 我想要一个只包含最长跑道行的结果集,即 MAX(Length)。 有时,数据库中多个跑道的长度为 0,因为缺少源数据。在那种情况下,我显然只想要 Length = 0 的一行。
我已经尝试过这里列出的方法:Inner Join table with respect to a maximum value,但这实际上并没有帮助,因为这就像在寻找最长的跑道,而不是在某个特定机场寻找最长的跑道。
【问题讨论】:
-
当有几个长度为 0 时,使用什么标准来确定返回的跑道? (airportID 最小的 airportID?)
-
@xQbert 可以是随机的。如果它们存储在 Length=0 的数据库中,我不在乎。随便挑一个。