有两张桌子:
wes - contains 8000 rows, with 2000 distinct masternames (mastername is a column in wes)
wem - contains 2100 rows, with 2100 distinct names (name is a column in wem)
我试图获取wem中存在的名称,但不是wes中的masternames:
SELECT name FROM wem WHERE name NOT IN (SELECT DISTINCT mastername FROM wes)
但是出于某种原因,我的查询并没有返回任何行,即使在wem中有大约100个名字并不作为wes中的主要名称存在。
关于出了什么问题的任何想法?
谢谢!
答案 0 :(得分:1)
您确定子选择中没有NULLS吗?
尝试SELECT mastername FROM wes WHERE mastername IS NULL
如果有,您的查询将返回0 rwows。
调整为:
SELECT NAME FROM wem
WHERE NAME NOT IN (SELECT mastername FROM wes WHERE mastername IS NOT NULL)
答案 1 :(得分:0)
我经常避免在这种情况下使用NOT IN
;尝试以下查询:
SELECT NAME
FROM wem a
WHERE NOT EXISTS(SELECT 1
FROM wes b
WHERE a.name = b.mastername)