Exists/not exists 用法
来源:互联网 发布:型材散热器 淘宝 编辑:程序博客网 时间:2024/05/03 11:09
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
===========================================================================
EXISTS = IN,意思相同不过语法上有点点区别,好像使用IN效率要差点,应该是不会执行索引的原因
SELECT ID,NAME FROM A WHERE ID IN (SELECT AID FROM B)
NOT EXISTS = NOT IN ,意思相同不过语法上有点点区别
SELECT ID,NAME FROM A WHERE ID NOT IN (SELECT AID FROM B)
- Exists/not exists 用法
- exists,not exists的用法
- exists,not exists的用法
- not Exists用法
- sqlserver not exists用法
- sql not exists 用法
- not exists 的用法
- sql exists和not exists用法
- oracle中的exists 和not exists 用法
- sql exists和not exists用法
- exists/not exists的用法和原理
- sql中exists,not exists的用法
- oracle中的exists 和not exists 用法
- oracle中的exists 和not exists 用法
- sql exists和not exists用法
- sql中exists,not exists的用法
- oracle中的exists 和not exists 用法
- sql中exists,not exists的用法
- 谁绑架了你的职业生涯!
- 关于SqlServer2005安全机制(一)
- [转帖]22条方法优化大脑的方法
- 解决SUNWI15CS 及 SUNWI1CS 的安装问题!
- 自动换行技巧
- Exists/not exists 用法
- 追根究底,剖析MFC六大关键技术(第一部分)(转)
- 人生之最
- Ext下,ajax请求和普通http请求,session超时转到登录页面的解决方案
- SQL SERVER 查看死锁的存储过程
- 追根究底,MFC六大关键技术之剖析(第二部分)(转)
- 单一入口应用程序
- 双网卡带宽合并难度大 如何突破速度极限?
- 追根究底,MFC六大关键技术剖析(第三部分)(转)