服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - mysql exists与not exists实例详解

mysql exists与not exists实例详解

2020-08-05 16:31zcqshine Mysql

这篇文章主要介绍了mysql exists与not exists实例详解的相关资料,鉴于 not exists 的效率往往要高于 not in , 所以一般情况下会使用前者替代后者,需要的朋友可以参考下

mysql exists与not exists实例详解

tableA

|column1 | column1 |column3 |

tableb

|column1 | column1 |column3 |

要查询 tableA 的数据,条件是是 tableA.column1 不在 tableB 的 tableB.column2 中

也就是要得到类似以下语句的效果(not in 效果不完全等同于 not exists , 如果子查询中出现空记录, 则整个查询语句不会返回数据)

?
1
2
3
4
5
6
7
8
SELECT
  a.*
FROM
  tableA a
WHERE
  a.column1 not in (
    SELECT column2 FROM tableB
  )

可以使用如下语句来实现

?
1
2
3
4
5
6
7
8
SELECT
  a.*
FROM
  tableA a
WHERE
  NOT EXISTS(
    SELECT b.column2 FROM tableB b WHERE a.colunm1=b.column2
  )

以上只是两张表的情况, 其实在多张表的连接查询中也是比较好用的. 以上写法同样适用于exists

 以上就是mysql exists与not exists的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:https://my.oschina.net/zcqshine/blog/780871

延伸 · 阅读

精彩推荐