我正在学习SQL,从编程的角度来看,我很难理解为什么这个查询的行为方式(来自SQLZOO Q6)
问题:
"找到每个大洲最大的国家(按地区),显示大陆,名称和地区:"
SELECT continent, name, area from world a
WHERE area >= ALL
(SELECT area from world b WHERE a.continent = b.continent AND area>0)
我得到了上面相当简单的嵌套select语句。
然而,我没有得到的是为什么更改此行导致空白结果:
WHERE area >= ALL
- 将其更改为 - WHERE area > ALL
为什么这会给我一个空白的结果?
更新:我使用 MySQL
答案 0 :(得分:5)
通过选择>
,您要求的所有国家/地区都超过同一大洲的所有国家/地区。任何一个国家的面积都不会超过同一大洲所有国家的面积:即使它是一个大陆上最大的国家,它仍然不会超过它自己。