22问答网
所有问题
sql 语句中in ,not in
sql 语句中in ,not in 效率很差么?有什么好的方式转换成exists 和not exists.
举报该问题
推荐答案 2007-08-01
如果系统不自动优化,并且IN的结果很多,那么有可能IN和NOT IN的效率低些。
所有的IN都可以转换为EXISTS,同样NOT IN可以转换为NOT EXISTS,下面说明IN转换为EXISTS的方法,NOT的类似:
IN的语句:
SELECT * FROM A WHERE F IN (SELECT F FROM B)
可以转换为如下的EXISTS语句:
SELECT * FROM A WHERE EXISTS
(SELECT * FROM B WHERE A.F=B.F)
上面转换的说明:两个WHETE都可能有更多都条件,那么直接AND在相应的地方即可。另外表A和B的关联字段可能名字表同,也司没关系的。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://22.wendadaohang.com/zd/0fhXhXf6.html
其他回答
第1个回答 2007-08-01
in 和 not in 是说在或者不在某一个范围之内,效率上面会有些差,而exists 和not exists是说存不存在
相似回答
oracle
中in,not in
和exists,not exists之间的区别
答:
其实在ORACLE 9i CBO就已经优化了
IN,
EXISTS的区别,ORACLE优化器有个查询转换器,很多SQL虽然写法不同,但是ORACLE优化器会根据既定规则进行查询重写,重写为优化器觉得效率最高
的SQL,
所以可能SQL写法不同,但是执行计划却是完全一样的。IN与EXISTS有一点要记住:IN一般是用于非相关子查询,而EXISTS一般用于相关子查询。当然I...
SQL
Server数据库
中in
、
not in
的用法
视频时间 02:36
大家正在搜
sql中in语句怎么优化
sql语句having
sql排序语句order by
not in oracle
模糊查询sql语句
sql语句不等于怎么表示
sql删除语句
sql外连接查询语句
sql语句包含某些数字