gpt4 book ai didi

mysql - 为什么此查询在这种条件下不起作用?

转载 作者:行者123 更新时间:2023-11-30 00:36:36 25 4
gpt4 key购买 nike

我正在尝试解决此 http://sqlzoo.net/wiki/SELECT_within_SELECT_Tutorial 中的一些任务在最后一个任务(编号 8)中,我写了一个查询:

select name, continent from world a
where a.population >
(select 3*max(population) from world b
where b.continent = a.continent)

但此查询不返回任何行。但工作几乎相同的查询(只是在子查询末尾添加了一个附加条件)。但有什么问题呢?即使国家名称相同,为什么它不返回原始数据?

select name, continent from world a
where a.population >
(select 3*max(population) from world b
where b.continent = a.continent and a.name <> b.name)

最佳答案

让我将这两个查询的作用翻译成英语,这样您就可以意识到其中的区别。

第一个查询;比较并获取位于同一大陆且人口数量超过该大陆人口最多国家 3 倍的所有国家/地区。

第二个查询;比较并获取同一大陆上除他自己之外的所有国家,其人口数量是该大陆人口最多国家的3倍以上。

在您的第一个查询中,如果他本人就是人口最多的国家/地区,那么人口最多的国家/地区的人口数量不能超过其本人的 3 倍,因此您的查询将返回 0 个结果。

但在第二个查询中,人口最多的国家(除了他自己)的人口可以是同一大陆其他国家的 3 倍。

关于mysql - 为什么此查询在这种条件下不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22119029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com