MS Access - WHERE IN可以工作,但是哪里没有失败

rmo*_*bis 2 sql ms-access

我在MS Access上有以下查询(简化):

SELECT * FROM table1 WHERE table1.ID NOT IN (SELECT DISTINCT table1id FROM table2);
Run Code Online (Sandbox Code Playgroud)

我的问题是它不起作用,但这两个工作:

SELECT * FROM table1 WHERE table1.ID IN (SELECT DISTINCT table1id FROM table2);
SELECT * FROM table1 WHERE table1.ID NOT IN (2, 3);
Run Code Online (Sandbox Code Playgroud)

第一个只是给我一个空集,而我知道我有table11到9的id 记录,表2中只有2和3.

有帮助吗?

Gor*_*off 10

通常,IN和NOT的问题与subselect中的NULL有关.试试这个,看它是否有效:

SELECT *
FROM table1
WHERE table1.ID NOT IN (SELECT DISTINCT table1id FROM table2 where tableid is not null);
Run Code Online (Sandbox Code Playgroud)