mysql中not exists的用法是什么

文 / @UTHEME

在mysql中,NotExists是一个非常有用的关键词,它可以用来查询两个表之间的关系。本文将会介绍NotExists的用法,帮助读者更好地理解和使用它。

NotExists可以用在where之后,后面紧跟着子查询语句(带括号)。它的用法类似于Exists,但是不同的是,它并不关心子查询的结果具体是什么,只关心子查询有没有结果。这条语句的意思是,把TableA的记录逐条代入到子查询中,如果子查询结果集为空,说明不存在,那么这条TableA的记录出现在最终结果集中,否则被排除。

下面我们来看一个例子,假设有两个表TableA和TableB,且TableB中的记录是TableA的子集,我们可以使用NotExists来查询TableA中的记录,但不包括TableB中已经存在的记录。语句如下:

Select * from TableA a where NotExists (Select * from TableB b where a.id = b.id and a.name = b.name);

这条语句的作用是,从TableA中查询出所有满足条件的记录,条件是这条记录在TableB中不存在,即TableB中没有id和name都和TableA中的记录匹配的记录。

另外,需要注意的是,使用NotExists时子查询无论什么情况下都不为空,导致最终的结果集为空,因为TableA中每条记录对应的子查询都有结果集,表示都存在,所以最终结果集为空。这可能会给使用者带来一些困惑,因此需要注意。

总之,NotExists是一个非常有用的关键词,在mysql中广泛使用。通过掌握NotExists的用法,可以更好地进行数据查询和筛选。希望读者能够通过学习本文,更好地掌握mysql中的NotExists用法。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。