双not exists的理解
时间: 2023-11-03 18:39:54 浏览: 88
第4课+MaxCompute+DDL操作.docx
双 not exists 是指在一个 SQL 查询语句中使用两个 NOT EXISTS 子句。它的作用是查找不符合两个条件的记录。
例如,假设有两个表 A 和 B,它们的结构如下:
表 A:
| id | name |
|----|------|
| 1 | John |
| 2 | Lucy |
| 3 | Mark |
| 4 | Jack |
表 B:
| id | name |
|----|-------|
| 1 | Peter |
| 2 | Lucy |
| 3 | Mark |
现在需要查询表 A 中没有出现在表 B 中的记录,同时表 B 中也没有出现在表 A 中的记录,可以使用双 not exists 的语句:
SELECT *
FROM A
WHERE NOT EXISTS (SELECT * FROM B WHERE A.id = B.id)
AND NOT EXISTS (SELECT * FROM B WHERE A.name = B.name);
以上查询语句的意思是:选择表 A 中的所有记录,但是不包括那些在表 B 中出现过的记录(根据 id 匹配),也不包括那些在表 B 中出现过的记录(根据 name 匹配)。
使用双 not exists 可以解决一些比较复杂的查询问题,但是要注意它的效率可能会比较低,不适合处理大量数据。
阅读全文