找到每个大洲最大的国家(按地区),显示大陆,名称和地区:
continent as Continent,
name as Name,
area as Area
FROM world x
WHERE area >= ALL(
SELECT
area
FROM world y
WHERE y.continent = x.continent
AND area > 0
)
在这种情况下,我不明白为什么你必须做y.continent = x.continent。有人能解释一下这里发生了什么吗?初学者到SQL谢谢。
答案 0 :(得分:1)
它被称为correlated subquery,并返回continent
与“外部”查询中该特定记录的continent
匹配的所有记录。
我不明白为什么你必须在这种情况下做y.continent = x.continent。
如果您没有,它将返回world
中的所有记录,而不仅仅是continent
匹配的记录。
查询大致转换为:
给我所有面积大于或等于同一大洲所有其他国家的国家