mysql中in和exists的区别 -- in写法select * from A where A.id in (select bid from B ) and A.name in (select bname from B ) ;-- exits写法select * from A where EXISTS (select 1 from B.bid = A.id ); 区别1 当B表的数据远大于A表的数据 exits的效率更高(B表大,用exits)当B表的数据远小于A表的数据 in的效…
见下面代码 /*+' select * from '+@strDBName +'.dbo.m_aic where nodeid not in(select nodeid from @tmpAIC) ' */ /*+' select * from '+@strDBName +'.dbo.m_aic as m where not exists (select 1 from @tmpAIC where nodeid = m.nodeid) ' */ 第一行是用了in 第二行用了exists 之前看书就…
可以 通过 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,,那么先执行子查询 I…