请教SQL高手,比比两种写法哪个更耗时 ( 积分: 200 )

  • 主题发起人 主题发起人 寻路
  • 开始时间 开始时间

寻路

Unregistered / Unconfirmed
GUEST, unregistred user!
翻译语句:<br>1、select&nbsp;a.value,&nbsp;b.text&nbsp;from&nbsp;a,&nbsp;b&nbsp;where&nbsp;a.value&nbsp;=&nbsp;b.value<br>2、select&nbsp;a.value,&nbsp;(select&nbsp;text&nbsp;from&nbsp;b&nbsp;where&nbsp;value&nbsp;=&nbsp;a.value)&nbsp;as&nbsp;text&nbsp;from&nbsp;a<br><br>请问:<br>&nbsp;&nbsp;&nbsp;&nbsp;上面两种写法,哪种更耗时?请在oralce和server&nbsp;sql中分别比较(如果两个数据库有区别的话)
 
第二種不曾見過。。。。我是都沒有這麽寫過。。。
 
如果仅仅做这种关联,都是用第一种写法,第二种跟第一种是一样的,但很难看<br>如果还有其他过滤条件,可以先在表中过滤后再关联,对大表会好很多<br>如:select&nbsp;a.value,&nbsp;b.text&nbsp;from&nbsp;(select&nbsp;a.value&nbsp;from&nbsp;a&nbsp;where&nbsp;a.col1='条件')&nbsp;a,&nbsp;(select&nbsp;text,&nbsp;value&nbsp;from&nbsp;b&nbsp;where&nbsp;col1='条件')&nbsp;b&nbsp;where&nbsp;a.value&nbsp;=&nbsp;b.value
 
第二种看着逻辑不是很清晰,如果字段一多,你每一个字段都要用一个select来表示,看起来太费劲了。zhengmw的方法还是可以的。<br><br>另外,在sqlserver2000中,这两种写法都不提倡,尽量用join进行连接
 
很明显是第一种。。。<br><br>不但直观,而且效率也一定比第二条高。
 
非常感谢各位!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
505
import
I
后退
顶部