我的查询的目标是返回国家名称及其国家元首,如果它的国家元首的名称以 A 开头,并且该国家的首都使用嵌套查询超过 100,000 人。
这是我的查询:
SELECT country.name as country,
(SELECT country.headofstate
from country
where country.headofstate like 'A%')
from country, city
where city.population > 100000;
我试过反转它,将它放在 where 子句中等等。我没有得到嵌套查询。我只是返回错误,例如“子查询返回多于一行”等。如果有人可以帮助我解决如何订购它,并解释为什么它需要以某种方式订购,那就太好了。
最佳答案
如果必须“嵌套”,这将是完成工作的一种方式:
SELECT o.name AS country, o.headofstate
FROM country o
WHERE o.headofstate like 'A%'
AND (
SELECT i.population
FROM city i
WHERE i.id = o.capital
) > 100000
一个
JOIN
不过,会比相关子查询更有效。难不成,曾经给过你那个任务的人自己都跟不上速度?
关于sql - 在 SQL 中嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467354/