sql - 查找所有人口大于每个北欧国家(属性区域)人口的亚洲城市
问题描述
我正在做一项任务,我应该找到所有人口超过每个北欧国家(属性区域)人口的亚洲城市。(示意图如下上传的图片所示)。我对 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 吗?
解决方案
尝试以下更改:
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 的方式进行比较,而不是直接与范围进行比较。
推荐阅读
- tensorflow - 运行 tensorflow-gpu 设备时几乎没有可用的 1080 ti 内存分配
- matlab - Matlab如何切换多维图像尺寸
- c++ - 在 linux 中,如何在 bash 或 c 或 c++ 中观察窗口创建事件
- python - csv.DictReader 错误“_csv.Error:行包含 NULL 字节”
- vb.net - VB.NET 多线程
- mysql - 如何使用来自另一个数据库的数据来选择数据?
- powershell - 用于设置 ms 访问的属性 PriorityClass 的 powershell 脚本
- batch-file - 如何使用命令提示符添加一行文本并保存?
- monaco-editor - Monaco Editor 中的类型检查
- java - 在 sqlite 文件夹中找不到 sqlite 数据库