sql - 在 SQL 中嵌套查询

标签 sql nested

我的查询的目标是返回国家名称及其国家元首,如果它的国家元首的名称以 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/

相关文章:

sql - Oracle 是否有内置函数可以按特定顺序连接多个字段?

java - JOOQ 中的 CASE 表达式

java - 每月总计金额的 SQL 数据透视表

由于枚举类嵌套,C++ 循环依赖

选项卡中的 jQuery 选项卡未正确显示

javascript - 过滤嵌套对象并保留父对象

java - hibernate 多个 @OneToMany 关系在父关系中生成更多结果

mysql - 如何使用 SQL 数据库中最接近的日期更新记录?

HTML 元素在一个或另一个中连续为 "nesting"

python - 扁平化嵌套循环/降低复杂性 - 互补对计数算法