sql 中 in 与 exist 的区别

可以 通过 where 条件 把 null的情况 筛选掉,已避免出现上述的情况。

 

 1,

exist 返回 true or  false;  in 返回  true  unknow。

not之后

not true or  not false  ;   返回 not  true  or  not  unknow; (两个都是 null)

2,

区分inexists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询

 

IN适合于外表大而内表小的情况EXISTS适合于外表小而内表大的情况

 

 

 

posted @ 2013-12-02 16:25  Coding_Yong  阅读(581)  评论(0编辑  收藏  举报