时间: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 记录 结构