当前位置:Gxlcms > 数据库问题 > SQL中EXISTS使用

SQL中EXISTS使用

时间:2021-07-01 10:21:17 帮助过:2人阅读

表,如下:

技术分享

第二张,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   记录   结构   

人气教程排行