IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况
例:
select * from 表1 where exists
( select id from 表2 where 条件1 nad 条件2 )
表1适合放大表还是小表
IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况
例:
select * from 表1 where exists
( select id from 表2 where 条件1 nad 条件2 )
表1适合放大表还是小表
好像不是这样理解的吧。。。
exists( select id from 表2 where 条件1 nad 条件2 ) 它返回的是一个bool类型的值,
如果 select id from 表2 where 条件1 nad 条件2 查到值则返回true,,没有查到返回false
select * from 表1 where exists
( select id from 表2 where 条件1 nad 条件2 )
这个整个语句的意思就是 如果select id from 表2 where 条件1 nad 条件2 查到数据,那么就执行select * from 表1 这句
虽然是这个意思
但是这个要看,你想要哪个表的数据?
想要大表里的数据,就放大表的,想要小表的,就放小表的。
如果俩个都想要,应该用left join on或者 inner join on连接吧???