我坚持使用SQL查询分配。
问题是要找到拥有超过5000万居民的所有欧洲国家的组织的组织名称。
isMember
国家/地区 - 组织 - 类型
TL - ACD - 会员
AL - ACD - 会员
组织
缩写 - 名称 - 城市
C - 英联邦 - 伦敦
D - 10人小组 - 伦敦
这是我认为我需要的两张桌子。还有一些我用来确定人口以及这个国家是否在我所使用的欧洲。
到目前为止,我已经来到了这个
SELECT country.name, country.code FROM population, country, encompasses WHERE country.code=encompasses.country AND encompasses.continent='Europe' AND country.code=population.country AND country.population>=50000000
此查询的结果是:
name | code
----------------+------
France | F
Germany | D
Italy | I
Ukraine | UA
Russia | R
Turkey | TR
United Kingdom | GB
所以问题是我如何检查一个组织是否将上述国家作为成员?
答案 0 :(得分:0)
类似
SELECT
Name
FROM Organization O
WHERE NOT EXISTS (
SELECT
1
FROM isMember M
JOIN Country C ON M.Country = C.Code
JOIN Encompasses E ON E.Country = M.Country
WHERE
M.Type = 'Member'
AND
(
C.Population < 50000001
OR
E.Continent <> 'Europe'
)
)