所以我有这个问题,我必须在表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'
)
应该做同样的事情。 :)