sql语句 exists 用法于 in的区别
以前一直不知道exists是怎么用的只知道和in差不多,前段时间碰到了就查了一下
下面比较一下两则的区别:
1)exists 强调的是是否返回结果集,不返回任何数据,返回的是true 或 false。in 返回的是具体的字段值
2) exists与in的使用效率的问题,通常情况下采用exists要比in效率高,因为in不走索引,但要看实际情况具体使用:
in适合于外表大而内表小的情况;exists适合于外表小而内表大的情况。
3)案例:select * from TableIn where exists(select 1 from TableEx where BNAME=TableIn.ANAME)
select * from TableIn where ANAME in(select BNAME from TableEx)