在我正在处理的SP的where
子句中,我试图过滤出匹配IDs
的行。下面有什么区别吗?两种方法都有好处吗? (我想第一个选择会更快)。
- Where t1.ID <> t2.ID
- Where t1.ID NOT IN (Select ID from T2)
答案 0 :(得分:3)
我只能想象一个上下文,它们是相同的。如果t2
在表中最多具有id
个不同的值,那就是这样。
这似乎不太可能,所以我认为唯一合理的答案是“否”。
我怀疑您在想:
select . . .
from t1 left join
t2
on t1.id = t2.id
where t2.id is null;
这几乎等同于带有子查询的not in
。 (唯一的区别是id
是否曾经是NULL
。)