正如我在标题中所说,我的查询并没有回复所期望的内容,也不符合逻辑...... 情况就是这样:
表A - > id INT,值VARCHAR
表B-> id INT,值VARCHAR
当我运行该查询SELECT value FROM A WHERE value NOT IN (SELECT value FROM B);
我希望该查询返回表B中没有的所有值,但它返回所有值。
我们假设A包含
使用该查询:SELECT value FROM A WHERE value NOT IN ('698741','425415');
它仍会返回所有值而不会触发NOT IN ...
答案 0 :(得分:2)
这是因为你在" B"中有一个NULL。表,试试这个:
SELECT A.[value]
FROM A
LEFT JOIN B ON A.[value] = B.[value]
WHERE B.[value] IS NULL;
或者如果你想保留你的代码,只需添加IS NOT NULL:
SELECT [value]
FROM A
WHERE [value] NOT IN (SELECT [value] FROM B WHERE [value] IS NOT NULL);
答案 1 :(得分:1)
总结评论主题的核对清单:
LIKE
进行测试。