NOT IN 和 NOT EXISTS及 IN 和 EXISTS的区别详解

1-EXISTS和IN的区别
    IN 是把外表和内表作HASH JOIN,而EXISTS是对外表作LOOP,每次LOOP再对内表进行查询。这样的话,IN适合内外表都很大的情
况,EXISTS适合外表结果集很小的情况;

2- NOT EXISTS和NOT IN的区别
    1)对于NOT EXISTS查询,内表存在空值对查询结果没有影响;对于NOT IN查询,内表存在空值将导致最终的查询结果为空。 
    2)对于NOT EXISTS查询,外表存在空值,存在空值的那条记录最终会输出;对于NOT IN查询,外表存在空值,存在空值的那条记
录,最终将被过滤,其他数据不受影响

原文地址:https://www.cnblogs.com/turnip/p/13722916.html