我正在阅读过去一篇关于我正在学习的数据库课程的论文,并且我遇到了一个SQL问题
这是提供的架构
国家(名称,资本,地区),名称是关键
人口(国家,人口,儿童,成人),其中国家是指国家名称,人口是总人口,儿童和成人是儿童和成年人口的百分比.
语言(国家,语言,百分比) - 对于该国使用的每种语言,它列出了说该语言的人口百分比.
这是一个问题:
在SQL中编写以下查询:查找仅在总人口超过10 ^ 7的国家/地区使用的语言.
这是我到目前为止:
SELECT l.language
FROM people p, language l
WHERE l.country = p.country AND
p.population > 10^7
Run Code Online (Sandbox Code Playgroud)
我感到困惑的是如何检查没有其他国家使用某种语言,但人口数量少于10 ^ 7.
有什么建议?谢谢
获取所有语言。从该集中删除人口 <= 10^7 的国家/地区使用的所有语言。提醒应该是仅在人口> 10^7 的国家使用的语言。
select language from languages
where language not in (
select language from languages l
join people p on l.country = p.country
where p.population <= 10^7)
Run Code Online (Sandbox Code Playgroud)
这是基于您的设计有这样的限制:每种语言必须在至少一个国家/地区使用;)