小编典典

在SQL中嵌套查询

sql

我的查询目标是返回国家名称和国家元首,如果它的国家首长名称以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子句等中。我没有嵌套查询。我刚刚得到错误,例如“子查询返回多个行”之类的错误。如果有人可以帮助我如何订购它,并解释为什么需要采用某种方式,那就太好了。


阅读 172

收藏
2021-03-17

共1个答案

小编典典

如果必须“嵌套”,这是完成工作的一种方法:

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

不过,AJOIN会比相关子查询更有效。难道是谁给了您这项任务,但他自己并没有加快步伐?

2021-03-17