Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL连接在最大值上,即使该值为0_Sql_Sqlite_Join_Distinct - Fatal编程技术网

SQL连接在最大值上,即使该值为0

SQL连接在最大值上,即使该值为0,sql,sqlite,join,distinct,Sql,Sqlite,Join,Distinct,我有两张大致如下的桌子: 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 我正在做一个连接,看起来像这样: Air

我有两张大致如下的桌子:

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
我正在做一个连接,看起来像这样:

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,因为缺少源数据。在这种情况下,我只需要一行的长度=0


我尝试过这里列出的方法:但这实际上没有帮助,因为这就像在所有跑道中搜索最长的跑道,而不是在某个特定机场搜索最长的跑道。

这似乎很简单,但似乎满足了您描述的所有情况

SELECT A.Name, Max(R.Length)
FROM Airports A
INNER JOIN Runways R
 on A.uniqueID=R.AirportID
Group by A.Name
这将为您提供每个机场的最大跑道


如果您需要其他数据元素,则使用上述作为内联视图(联接中的子查询),将结果集限制为仅限于这些机场及其最大跑道。

当多个机场的长度为0时,使用什么标准来确定要返回的跑道?(airportID最小的airportID?@xQbert它可以是随机的。如果它们以Length=0存储在DB中,我不在乎。就挑一个吧,不,就这样。如果它看起来“太简单”,那是因为自2005年以来我没有做过任何SQL,所以我甚至忘记了最简单的事情。