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,
区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,,那么先执行子查询
IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况