2012-11-13 149 views
2

我有一張兩張表,會員和國家,我想要做的是找到所有沒有會員的國家。我有點失落,這是我最好的猜測,但它不工作:嵌套的SQL計數

SELECT CountryID 
FROM Country 
WHERE (SELECT COUNT(MemberID) FROM Member WHERE PrCountryID = CountryID) = 0 

任何幫助將不勝感激。

neojakey

+0

爲此,您可以加入但語法將取決於您使用的是哪個SQL包,是MS SQL/MySQL等? – bendataclear

回答

1

嘗試使用not exists條款:

SELECT C.CountryID 
FROM Country C 
WHERE not exists(SELECT 1 FROM Member M WHERE M.PrCountryID = C.CountryID) 
+0

完美工作..我從來沒有想過使用「不存在」..好的一個,1點給你..! – neojakey

+0

我很高興我可以幫你:) – Parado

2
select countryID from Country C left join member M on C.CountryID=M.CountryID where M.MemberID is null 
+1

小提琴的例子:D http://sqlfiddle.com/#!3/82079/3 – fnurglewitz

0

在沒有看到表我想你通過左需要像這樣

select * from Country c 
left outer join Member m on m.PrCountryID = c.CountryID 
where m.PrCountryID is null