关于 JOIN 语句条件的筛选优化问题
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
请问以上三个语句哪个效率高?
------解决方案--------------------select a.xx,b.xx from a left join b on a.id = b.id and a.id = 1
------解决方案--------------------为什么?我觉的差不多啊~~~
------解决方案--------------------第三条的效率更高,下午研究得到的结果
------解决方案--------------------不敢下结论,关注一下。
------解决方案--------------------第三条会更高的:
----
第一条是将数据生成后才进行ID=1的筛选
第二条是在查询时进行ID=1的筛选
第三条是先筛选后进行查询
------解决方案--------------------不太懂,关注...效率问题,没有研究过
------解决方案--------------------第二条比第一条高
因为实现筛选在联接
------解决方案--------------------第二条改下就可以先筛选后连接了:
select a.xx,b.xx from a left join b on
( a.id = 1 and a.id = b.id )
------解决方案--------------------xuexi