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)

posted @ 2017-09-04 15:49  夕木木青  阅读(194)  评论(0编辑  收藏  举报