频道栏目
首页 > 数据库 > Oracle > 正文
oracle数据库下关键字EXIST,NOT EXISTS使用讲解
2018-07-30 15:35:18         来源:Xiaomingbubu3的博客  
收藏   我要投稿

exists (sql 返回结果集为真)

not exists (sql 不返回结果集为真)

如下:

表A

ID NAME

1 A1

2 A2

3 A3

表B

ID AID NAME

1 1 B1

2 2 B2

3 2 B3

表A和表B是1对多的关系 A.ID => B.AID

SELECT ID,NAME FROM A WHERE EXIST (SELECT * FROM B WHERE A.ID=B.AID)

执行结果为

1 A1

2 A2

原因可以按照如下分析

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=1)

--->SELECT * FROM B WHERE B.AID=1有值返回真所以有数据

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=2)

--->SELECT * FROM B WHERE B.AID=2有值返回真所以有数据

SELECT ID,NAME FROM A WHERE EXISTS (SELECT * FROM B WHERE B.AID=3)

--->SELECT * FROM B WHERE B.AID=3无值返回真所以没有数据

NOT EXISTS 就是反过来

SELECT ID,NAME FROM A WHERE NOT EXIST (SELECT * FROM B WHERE A.ID=B.AID)

执行结果为

3 A3

点击复制链接 与好友分享!回本站首页
上一篇:关于Oracle数据库日期范围查询的两种实现方法详解
下一篇:oracle安装完数据库后创建新用户的操作步骤教程
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站