【发布时间】:2012-04-10 20:56:51
【问题描述】:
我正在查看我正在学习的数据库课程的过去论文,但我遇到了一个 SQL 问题
这是提供的架构
国家(名称、首都、地区),名称是关键
People(国家、人口、儿童、成人),其中国家指的是 国家名称,人口是总人口,儿童和成人 是儿童和成人人口的百分比。
Language(country,language,percentage) – 对于在 国家,它列出了说该语言的人口百分比。
问题来了:
在 SQL 中编写以下查询:查找仅在总人口超过 10^7 的国家/地区使用的语言。
这是我目前所拥有的:
SELECT l.language
FROM people p, language l
WHERE l.country = p.country AND
p.population > 10^7
我有点困惑的是如何检查没有其他国家使用某种语言但人口少于 10^7。
有什么建议吗? 谢谢
【问题讨论】:
-
因为这是一个数据库课程,你应该阅读正确的连接语法。您使用的是较旧/过时(但仍然有效)的符号,我称之为“惰性语法”。
-
“仅大于 X”表示“不小于或等于 X”
-
一个花哨的事情(我认为这个问题正在得到解决)是,对于任何给定的语言,问问自己:有多少个国家说它,这些国家中有多少人有 > X 人口?或者您可以问自己:“如果我有两张表,一张的国家人口 > X,另一张