EXISTS

exists

含义解析:exists 的意思是用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
EXISTS(包括 NOT EXISTS )子句的返回值是一个BOOL值。
EXISTS内部有一个子查询语句(SELECT … FROM…) —— EXIST的内查询语句。其内查询语句返回一个结果集。 EXISTS子句根据其内查询语句的结果集空或者非空,返回一个布尔值。
意思就是,将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,那么带入内查询作检验的这一行数据,便会作为结果显示出来,反之则不显示

详细步骤(使用exists):

1,首先执行外查询select * from A,然后从外查询的数据取出一条数据传给内查询。

2,内查询执行select * from B,外查询传入的数据和内查询获得数据根据where后面的条件做匹对,如果存在数据满足A.id=B.id则返回true,如果一条都不满足则返回false。

3,内查询返回true,则外查询的这行数据保留,反之内查询返回false则外查询的这行数据不显示。外查询的所有数据逐行查询匹对。

注:not exists和exists的用法相反

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容