首页 > 解决方案 > 查找所有人口大于每个北欧国家(属性区域)人口的亚洲城市

问题描述

我正在做一项任务,我应该找到所有人口超过每个北欧国家(属性区域)人口的亚洲城市。(示意图如下上传的图片所示)。我对 SQL 很陌生,我只是想问一下,将表与外键(在这种情况下为国家代码和代码)连接起来的正确方法是什么,以便我可以同时处理两个表并输入我的条件。

到目前为止,我的方法是:

SELECT city.Name
FROM wwd.city
JOIN wwd.country
ON city.CountryCode = country.Code
WHERE country.Continent='Asia' AND city.population > (SELECT city.population
                                                      FROM wwd.city
                                                      WHERE country.Region = 'Nordic'

我不确定我是否正确使用了命令 JOIN 以及第二个 SELECT 部分中预期的命令 JOIN 吗?

图片

标签: sql

解决方案


尝试以下更改:

SELECT
    city.Name
FROM
    wwd.city
    JOIN wwd.country ON city.CountryCode = country.Code
WHERE
    country.Continent = 'Asia'
    AND city.population > (
        SELECT
            max(city.population)
        FROM
            wwd.city
        WHERE
            country.Region = 'Nordic'
    )

通常,我们希望以 1:1 的方式进行比较,而不是直接与范围进行比较。


推荐阅读