Oracle中EXISTS和NOT EXISTS的使用

 

我们假设两张表

表user 
ID NAME
1    张三 
2    李四 
3    王五

表course 
ID  NAME COURSE
1     张三       数学     
2     李四       英语
3     李四       语文

1、EXISTS的使用

SELECT *
FROM USER  A
WHERE EXISTS (
SELECT *
FROM COURSE B
WHERE A.NAME = B.NAME)

结果为:

ID  NAME
 1    张三 
 2    李四

EXISTS的使用意义就是:在A表的NAME中查询与B表NAME字段相同的A表中的数据

B表NAME有 张三李四,就去A表NAME中找到张三李四

类似用法:IN(链接👇)

 

 https://www.cnblogs.com/MoonASixpence/p/14078095.html

2、NOT EXISTS的使用

SELECT *
FROM USER  A
WHERE NOT EXISTS (
SELECT *
FROM COURSE  B
WHERE A.NAME= B.NAME)

结果为:

ID NAME
 3    王五

NOT EXISTS的使用意义就是:在A表的ID中查询与B表AID字段不同的A表中的数据

posted @ 2020-12-03 10:07  Julian_jiang  阅读(539)  评论(0编辑  收藏  举报