关于先筛选还是后筛选?解决方案
关于先筛选还是后筛选?
select a1.xx,b.xx from (select a.xx from a where a.id < 100) a1 left join b on a1.id = b.id
select a.xx,b.xx from a left join b on a.id = b.id where a.id < 100
select a.xx,b.xx from a,b where a.id(+) = b.id where a.id(+)< 100
请问以上三个语句哪个效率高?请说明原因!
------解决方案--------------------
select a.xx,b.xx from a,b where a.id(+) = b.id where a.id(+) < 100
报错
select a1.xx,b.xx from (select a.xx from a where a.id < 100) a1 left join b on a1.id = b.id
select a.xx,b.xx from a left join b on a.id = b.id where a.id < 100
一样
------解决方案--------------------
效率先不说,在某些时候,执行结果是不一样的。
参照
http://hi.baidu.com/kokyu/blog/item/0ffc35cd8c4f74550fb345b6.html
http://www.diybl.com/course/7_databases/oracle/oraclejs/2008108/149307.html
------解决方案--------------------
select a1.xx,b.xx from (select a.xx from a where a.id < 100) a1 left join b on a1.id = b.id
select a.xx,b.xx from a left join b on a.id = b.id where a.id < 100
select a.xx,b.xx from a,b where a.id(+) = b.id where a.id(+)< 100
请问以上三个语句哪个效率高?请说明原因!
------解决方案--------------------
select a.xx,b.xx from a,b where a.id(+) = b.id where a.id(+) < 100
报错
select a1.xx,b.xx from (select a.xx from a where a.id < 100) a1 left join b on a1.id = b.id
select a.xx,b.xx from a left join b on a.id = b.id where a.id < 100
一样
------解决方案--------------------
效率先不说,在某些时候,执行结果是不一样的。
参照
http://hi.baidu.com/kokyu/blog/item/0ffc35cd8c4f74550fb345b6.html
http://www.diybl.com/course/7_databases/oracle/oraclejs/2008108/149307.html
------解决方案--------------------