SELECT something FROM somewhere WHERE something IN (a, b, c)
产生正常结果,
SELECT something FROM somewhere WHERE something NOT IN (a, b, c)
应该从表某处中的列某些给我所有结果,但它给了我比表中更多的随机重复行。互联网上NOT IN的所有例子都是文字串,而我正在使用数字,有什么不同吗?
答案 0 :(得分:4)
如果没有“真正的”查询,很难说出发生了什么......
Tat说,并在Michael的回答中添加,确保not in
子句中没有空值,因为语义与看似相反的in
子句的语义完全不同:
select a from b where a in (1, null); -- rows where a = 1
select a from b where a not in (1, null); -- no rows, since x <> null is null
答案 1 :(得分:1)
在结果中接收“多次”行几乎总是不正确连接的结果。检查FROM子句中的JOIN语句和/或您在WHERE子句中指定的任何表关系。
确保您没有在FROM子句中包含任何未正确连接到SELECT语句中其他表的表。
祝你好运!