时间: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的用法
标签: