在网上查了很多关于not exists 与not in 的不同 但是还是弄不明白 ,希望高手来解决一下,大家可以讨论讨论

解决方案 »

  1.   

    in 是把外表和那表作hash join,而exists是对外表作loop,每次loop再对那表进行查询。
    这样的话,in适合内外表都很大的情况,exists适合外表结果集很小的情况。
      

  2.   

    not in () ,括号中的集合中如果有null值,你是完成不了你想得到的结果的,这是只能用 not exists,剩下的就是二者的性能问题了,如果数据量不是很大的话,二者都差不多,两个表关联的时候,后一个表数据量大的时候应该用exists
    总结:1.有null值时,用not exists,
          2.效率不同