码迷,mamicode.com
首页 > 数据库 > 详细

SQL中exists,not exists的用法

时间:2015-06-28 14:11:16      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

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的用法

标签:

原文地址:http://www.cnblogs.com/mlj001/p/4605428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!