SQL如何只找到表1中与表2中所有元组匹配的元组?

时间:2014-03-19 15:57:18

标签: sql

我坚持使用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

所以问题是我如何检查一个组织是否将上述国家作为成员?

1 个答案:

答案 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'
        )
)