码迷,mamicode.com
首页 > 数据库 > 详细

SQL中EXISTS使用

时间:2017-08-12 00:33:03      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:没有   nbsp   索引   理解   div   pre   where   记录   结构   

EXISTS的作用和IN一样,判断是否包含

建立两张表,第一张T_USER表,如下:

技术分享

第二张,T_DEP表,表结构如下:

技术分享

两张表结构,都非常简单,没有添加约束

此时执行下列SQL:

select *
from t_user  u
where exists( select 1 from t_dep  d where u.depno = d.id)

得到如下结果:

技术分享

等同于使用IN:

select *
from t_user  u
where u.depno in ( select d.id from t_dep  d)

可以这样来理解,先执行 select * from t_user 得到记录之后,再依次去判断该记录是否存在EXISTS的条件中。

而且不管select 1 换成那个字段,都不影响结果。

查阅的值,数据较多的时候,使用EXISTS的效率表IN的效率要高。因为IN无视索引。

 

SQL中EXISTS使用

标签:没有   nbsp   索引   理解   div   pre   where   记录   结构   

原文地址:http://www.cnblogs.com/GoneLW/p/7348484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!