关于exists的使用 以前一直用in 也没学过sql什么的就是照着用,网上说exists效率高想改改,但是思想就是变不过去,想大家来个例子。例如select * from table_1 where id in(‘1’,‘3’,‘5’)上面的如何改写 希望能帮忙写下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个例子还是用in好了数据集比较大时用exists效率比较高比如a表和b表,b表较大select * from awhere exists(select 1 from b where id=a.id)性能要比select * from awhere id in (select id from b)好exists验证存在性,会走索引。而in要对后面的表进行全表扫描 我只是举个例子 实际上table_1是有50万条左右 而后面的in中有1000个左右 用哪种会效率高些 或者有什么别的好的方法 谢谢 大家 我是希望exists改写一下 看看哪个快一些 如何写呢 select * from table_1where exists(select 1 from table_1 where id = 1 or id = 2 or id =3); 如果你的表很多,要有索引,使用exists肯定快 我要找的有1000多个 那我就要where exists(select 1 from table_1 where id = 1 or id = 2 or id =3。。);吗? EXISTS和IN、IN和'='、NOT IN和NOT EXISTS楼主可以参考下这篇文章http://blog.csdn.net/wh62592855/archive/2009/11/13/4806741.aspx oracle 11g 2 只有命令行版的sqlplus吗? 安装oracle 11g环境变量ORACLE_HOME的一个问题 PLSQL Developer怎么连接数据库服务器 请问如何在数据库中删除一个DATE类型的记录呢? Oracle动态行转列问题 请问:不产生归档日志的sql语句如何写?谢谢!! oracle10 数据库启动不了求助 大家帮忙想一下如何实现如下要求的sql语句!!!!!! 数据库查询(在线急) Oracle的基础问题~~~~~,各位大哥帮帮忙哈~~~ ora 文字格式与字符串不配 ora-00907: 缺失右括号
数据集比较大时用exists效率比较高
比如a表和b表,b表较大
select * from a
where exists(select 1 from b where id=a.id)
性能要比
select * from a
where id in (select id from b)
好exists验证存在性,会走索引。而in要对后面的表进行全表扫描
where exists(select 1 from table_1 where id = 1 or id = 2 or id =3);
楼主可以参考下这篇文章http://blog.csdn.net/wh62592855/archive/2009/11/13/4806741.aspx