|
主题: SQL查询问题,请指教II
|
 不是高手
职务:普通成员
等级:3
金币:5.0
发贴:1352
|
#12005/1/28 15:30:05
请问在SQL Server中,下列哪句查询语句执行起来效率高:
select * from tab_A,tab_B where tab_A.name=tab_B.name
select * from tab_A join tab_B on (tab_A.name=tab_B.name)
|
 不是高手
职务:普通成员
等级:3
金币:5.0
发贴:1352
|
#22005/1/28 16:10:34
还有个问题,一起问了吧 上面的查询语句,一个是SQL1标准,一个是SQL2标准,现有的SQL SERVER 2K是不是部分支持SQL2标准?因为有的语句我用SQL2写法在查询分析器里不通过。
先谢过了!
|
 蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#32005/1/28 22:25:10
效率倒不知,不过新的SQL不推荐荐使用第一种用法,可能与标准或向后兼容有关吧。 使用JOIN好象更清晰,并且各表的条件链接不会混在一起,而第一种容易混了。
非常大鱼
|
 蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
|
#42005/1/28 22:36:36
比如三个表
第一种: SELECT m.Name, a.Title, c.Detail FROM Member m, Atitcle a, Comment c WHERE a.MemberID = a.MemberID, a.ArticleID = c.ArticleID
第二种: SELECT m.Name, a.Title, c.Detail FROM Member m INNER JOIN Article a ON a.MemberID = a.MemberID INNER JOIN Comment c ON a.ArticleID = c.ArticleID
非常大鱼
|
 5D公害
职务:普通成员
等级:9
金币:10.3
发贴:36272
|
#52005/1/29 10:57:02
把*换成您要的字段,如name,sex..........(略) 效率会更高
|
 janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#62005/1/30 10:42:14
yeah在上个帖子中说 引用: 把*换成您要的字段,如name,sex..........(略) 效率会更高
同意,查询分析器可以自动地生成列的列表。 据说 T-SQL 的优化查询可以让两者达到相同的效率,但出于向后兼容,我也推荐用 JOIN。它还有个好处:在必要的情况下方便地改成 LEFT JOIN or RIGHT JOIN
|
 不是高手
职务:普通成员
等级:3
金币:5.0
发贴:1352
|
#72005/2/1 8:46:24
谢谢,明白了
|