SQL中EXISTS使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中EXISTS使用相关的知识,希望对你有一定的参考价值。
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使用的主要内容,如果未能解决你的问题,请参考以下文章
当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。 - SQL 服务器
以下代码片段是不是容易受到 Rails 5 中 SQL 注入的影响?
使用 FOR ALL ENTRIES 和 NOT EXISTS 的 SQL 语句不正确
sql面试题_SQl优化技巧_1注意通配符中like的使用,百分号放后面_2避免在where子句中对字段进行函数操作_3在子查询当中,尽量用exists代替in_4where子句中尽量不要使用(代码片