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 < 100select 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
一样
select a1.xx,b.xx from (select a.xx from a where a.id < 100000) 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 < 100000select a.xx,b.xx from a,b where a.id = b.id(+) and a.id < 100000如果a表中的数据是十万条以上,请问上述三个语句哪个效率高?请说明原因!
left join和用(+)是一样的
你去测试下执行计划和时间看看就知道了
参照
http://hi.baidu.com/kokyu/blog/item/0ffc35cd8c4f74550fb345b6.html
http://www.diybl.com/course/7_databases/oracle/oraclejs/2008108/149307.html