用EXISTS替代IN
来源:互联网 发布:菜谱录入软件 编辑:程序博客网 时间:2024/05/29 13:09
在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率. 在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS.
例子:
(高效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND EXISTS (SELECT ‘X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB')
(低效)SELECT * FROM EMP (基础表) WHERE EMPNO > 0 AND DEPTNO IN(SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB')
- 用EXISTS替代IN
- sql语句优化--用EXISTS替代IN、用NOT EXISTS替代NOT IN
- sql语句优化之用EXISTS替代IN、用NOT EXISTS替代NOT IN的语句
- sql中用EXISTS替代IN、用NOT EXISTS替代NOT IN显著变化
- Sql语句优化之用exists、not exists替代in、not in
- 多个字段的in 和 not in 及其替代写法(exists,not exists)
- 多个字段的in 和 not in 及其替代写法(exists,not exists)
- 多个字段的in 和 not in 及其替代写法(exists,not exists)
- 多个字段的in 和 not in 及其替代写法(exists,not exists)
- 多个字段的in 和 not in 及其替代写法(exists,not exists)
- NOT EXISTS替代NOT IN EXISTS替换DISTINCT 识别‘低效执行’的SQL语句
- NOT EXISTS替代NOT IN EXISTS替换DISTINCT 识别‘低效执行’的SQL语句
- NOT EXISTS替代NOT IN 和 EXISTS替换DISTINCT 识别‘低效执行’的SQL语句
- IN-EXISTS
- exists&&in
- EXISTS --in
- mySql:in,exists,not exists
- 写sql 用EXISTS 代替 in
- IronPython名字前面那个前缀“Iron”的含义
- 如何查询刚刚插入记录的主键?
- Activex、OLE、COM、OCX、DLL之间有什么区别?
- (总结供新手参考)向Linux 内核中添加user-defined system call 的一些思考
- php运用xml实例--留言本
- 用EXISTS替代IN
- 积累的VC编程小技巧之属性页
- Ubuntu Kung Fu: Tips, Tricks, Hints, and Hacks
- I NEED U
- 积累的VC编程小技巧之标题栏和菜单
- WPF Recipes in C# 2008: A Problem-Solution Approach
- 站点地图与网站优化
- The Definitive Guide to SOA: Oracle® Service Bus, Second Edition
- Web 2.0: The Business Model