关于 JOIN 语句条件的筛选优化问题

starsword 2007-04-20 07:16:04
select a.xx,b.xx from a left join b on a.id = b.id where a.id = 1

select a.xx,b.xx from a left join b on a.id = b.id and a.id = 1

select a1.xx,b.xx from (select a.xx from a where a.id = 1) a1 left join b on a1.id = b.id

请问以上三个语句哪个效率高?
...全文
473 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
li95415667 2007-04-30
  • 打赏
  • 举报
回复
第二条改下就可以先筛选后连接了:
select a.xx,b.xx from a left join b on
( a.id = 1 and a.id = b.id )
xiangshuiyoudu 2007-04-30
  • 打赏
  • 举报
回复
第二条比第一条高
因为实现筛选在联接
xiao_yi 2007-04-30
  • 打赏
  • 举报
回复
不太懂,关注...效率问题,没有研究过
ALLEN625314 2007-04-30
  • 打赏
  • 举报
回复
xuexi
free_pop2k 2007-04-29
  • 打赏
  • 举报
回复
第三条会更高的:
----
第一条是将数据生成后才进行ID=1的筛选
第二条是在查询时进行ID=1的筛选
第三条是先筛选后进行查询
fffddd 2007-04-29
  • 打赏
  • 举报
回复
不敢下结论,关注一下。
xqlvcc 2007-04-29
  • 打赏
  • 举报
回复
在teradata里第一条会优化成第三条,可见第三条效率更高,哈哈
xqlvcc 2007-04-29
  • 打赏
  • 举报
回复
第三条的效率更高,下午研究得到的结果
starsword 2007-04-23
  • 打赏
  • 举报
回复
多谢楼上兄弟的指教~

有没有高手来详细解释一下啊?
Dic4000 2007-04-20
  • 打赏
  • 举报
回复
为什么?我觉的差不多啊~~~
青草根儿 2007-04-20
  • 打赏
  • 举报
回复
select a.xx,b.xx from a left join b on a.id = b.id and a.id = 1

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧