有两个简单例子,以说明 “exists”和“in”的效率问题
1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。
2) select * from T1 where T1.a in (select T2.a from T2) ;
T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。
exists 用法:
请注意 1)句中的有颜色字体的部分 ,理解其含义;
其中 “select 1 from T2 where T1.a=T2.a” 相当于一个关联表查询,相当于
“select 1 from T1,T2 where T1.a=T2.a”
但是,如果你当当执行 1) 句括号里的语句,是会报语法错误的,这也是使用exists需要注意的地方。
“exists(xxx)”就表示括号里的语句能不能查出记录,它要查的记录是否存在。
因此“select 1”这里的 “1”其实是无关紧要的,换成“*”也没问题,它只在乎括号里的数据能不能查找出来,是否存在这样的记录,如果存在,这 1) 句的where 条件成立。
分享到:
相关推荐
sql语句中in与exist_not_in与not_exist_的区别
IN 和 EXIST的区别
Exist交互流程图1
有时候eclipse或者myeclipse导入项目的时候会发生上面两个错误,IDE不允许我们导入。具体原因是在IDE的workspace中已经存在了相同名字的项目,所以不能导入。
if not exist c:\1.txt echo. >c:\1.txt & goto err1 if not exist c:\2.txt echo. >c:\2.txt & goto err1 if not exist c:\3.txt echo. >c:\3.txt & goto err1 if not exist c:\4.txt echo. >c:\4.txt & goto err1 ...
解决/root/.Xauthority does not exist
eXist-db XML原生数据库 XML数据库
Not-exist-in-douban 如何贡献 请提交到 index.md 文件
eXist:原生XML数据库和应用平台
eXist数据库的部署文件,可直接部署在Tomcat下
do_not_exist
最近在做一个V*P*N中间件的配置工作,在配置...iptables: Bad rule (does a matching rule exist in that chain?)。我就纳闷了,怎么会出现这个问题,按照官方的文档也有错?以下是我针对iptables删除命令的解决办法。
在绘制贴图时有时会出现Part of path doesn't exist 的问题
“Controller does not exist.”登陆后台突然是这个提示登陆不上后台了。 入口为:index.php?m=admin 这是控制器不存在错误 应该是改过了系统文件,或者是上传文件缺失。 可以这样做,把phpcms/ 目录下的所有文件和...
安装sap gui 750后,打开smartforms或scriptforms提示:CSapEditorCtrl::GetObject: Object 13 does not exist的解决方法:安装此安装包后即可解决问题
关于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.in...
SQL中对not in和not exist查询的替代算法.pdf
FILE_DOES_NOT_EXIST HOOK zwCreateFile
EXISTS 和 IN 都是 Oracle 中的集合操作符,但它们在使用和执行效率上有所不同。本文将深入探讨 EXISTS 和 IN 的使用场景、执行机制和效率问题。 EXISTS 的使用场景和机制 EXISTS 主要用于判断子查询是否存在记录...