exists 与 in
来源:互联网 发布:hive get json object 编辑:程序博客网 时间:2024/06/06 23:43
exists做为where 条件时,是先对where 前的主查询询进行查询,然后用主查询的结果一个一个的代入exists的查询进行判断,如果为真则输出当前这一条主查询的结果,否则不输出
比如
如下:
表A
ID NAME
1 A1
2 A2
3 A3
表B
ID AID NAME
1 1 B1
2 2 B2
3 2 B3
表A和表B是一对多的关系 A.ID –> B.AID
SELECT ID , NAME FROM A WHERE EXISTS (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
- in与exists
- exists与in
- in与exists
- SQL exists 与 in
- in与exists测试
- exists 与 in
- Oracle in与exists
- EXISTS与IN
- in与exists
- Mysql Exists与in
- EXISTS与IN, NOT EXISTS与NOT IN比较
- EXISTS 与 IN 的 比较
- exists与in查询区别
- EXISTS 与 IN 的 比较
- oracle in与exists疑惑
- EXISTS与IN的区别
- In 与Exists的理解
- in与exists别乱用
- 步步为营_Android开发课[29]_用户界面之SeekBar(拖动条)
- 欢迎使用CSDN-markdown编辑器
- 什么是企业号?
- Android调用系统相机拍照,并且模仿实现水印相机简单功能
- Spring 的优秀工具类盘点,第 2 部分: 特殊字符转义和方法入参检测工具类
- exists 与 in
- 黑马程序员----OC Foundation框架--结构体、NSString
- 用Ubuntu SDK创建Currency Converter (视频)
- linux之-----------poll函数
- IO多路复用总结
- ACdream之使用vector和queue进行邻接表的广搜
- java自定义栈(数组实现)
- 学会阅读Java字节码
- 极小化极大算法与负极大值算法