当前位置:Gxlcms > 数据库问题 > SQL中exists,not exists的用法

SQL中exists,not exists的用法

时间:2021-07-01 10:21:17 帮助过:4人阅读

SQL中的exists和in都是表示是否存在,exists强调的是是否返回结果集,exists 与 in 最大的区别在于 in引导的子句只能返回一个字段。

not exists 和not in 分别是exists 和 in 的 互斥条件。

假设表A和B,判断A的数据记录否在B中存在,并且输出A中的key(输出结果中不能含有重复的key),则SQL如下:

select distinct

      A.id

     ,A.name

from

    表A

where exists

          (select

                1

            from

                 B

            where

                   A.x=B.x

            AND A.y=B.y

);

执行上面的SQL便可输出A中在B中的数据记录;

想要输出A中不在B中数据记录,只要将exists改为not exists即可,莫不可将not exists条件改为 下面A和B表的关联条件的否定,即:

                   A.x<>B.x

            OR  A.y<>B.y

将条件改为上述条件后,输出记录会重复输出几条,虽然上面有distinct操作,但影响效率。

 

SQL中exists,not exists的用法

标签:

人气教程排行