所以我有这个问题,我必须在表ismember中显示名称或不属于组织“ WHO”的国家/地区。这是我想出的SQL

SELECT DISTINCT ismember.country, country.name
FROM ismember LEFT JOIN country ON ismember.country = country.code
WHERE ismember.organization NOT IN (
    SELECT DISTINCT ismember.organization
    FROM ismember
    WHERE ismember.organization = 'WHO'
)
GROUP BY organization
HAVING COUNT(organization) > 1 ;


它有效,并且确实返回了不在“ WHO”中的国家。我的问题是这种方法排除了没有组织的国家。即,它排除在ismember表中没有条目的那些国家。

任何想法如何解决

最佳答案

为什么不只是这样?

SELECT code, name FROM country WHERE code NOT IN (
    SELECT country FROM ismember WHERE organization = 'WHO'
)


应该做同样的事情。 :)

10-06 13:12