标题:一个查询效率问题!
只看楼主
qazwsx123456
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-6-29
 问题点数:0 回复次数:6 
一个查询效率问题!
select s#,sname
from s
where s# in (select s#
from sc
where c#='c2');

select s#,sname
from s
where exists(select *
from sc
where sc.s#=s.s# and c#='c2');
各位帮忙比较一下这两种查询的区别?
那个效率更高?为什么?
搜索更多相关主题的帖子: 效率 查询 
2007-10-11 11:52
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 
select s.s#,sname from s,sc where s.s#=sc.s# and sc.c#='c2'
这样不就好了吗?
为什么你那样写呢?

2007-10-11 13:29
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
得分:0 
那可能是LZ的编程风格.

Repeat  Life=Study;Until (death);
2007-10-11 13:58
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
我觉得使用in效率高于使用exists
不知对否.

我的msn: myfend@
2007-10-11 14:38
sky_yang_sky
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:481
专家分:16
注 册:2007-5-30
得分:0 

一般IN比EXISTs快一些,但是not exists要比not in快得多


你微笑的面對整個世界,整個世界也將會微笑的面對你。
2007-10-11 15:46
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
得分:0 
如果要用到的not exists或not in 那么我宁可去建临时表了

2007-10-11 16:37
qazwsx123456
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2007-6-29
得分:0 

感谢大家的支持!我觉得用第一种是先对sc表做了一次筛选!所以效率更高一些!
第二种方法的原理就不太清楚了!有那位能帮忙写一下它的关系演算表达式啊?


飞的最高的鹰靠的不是翅膀而是坚定的信念!!!
2007-10-11 17:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-176658-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.106344 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved