1、
select *
from A join B on A.id=B.id
where A其他条件 and B其他条件
2、
select *
from A,B
where A.id=B.id
and A其他条件 and B其他条件
这两种写法有什么区别?
------解决方案--------------------
没有区别,执行计划应该也是一样的。
------解决方案--------------------
从关联角度看效率是一样的,不过加上其他条件的时候就要具体分析了。
------解决方案--------------------
你看看是不是其他条件影响的,查一下具体的执行计划。
------解决方案--------------------
尽量使用Join 而不是Where来列出关联条件,特别是多个表联合的时候。
原因是:
1)在效率上,Where可能具有和Inner join一样的效率。但基本可以肯定的是Join的效率不比Where差。
(2)使用Join可以帮助检查语句中的无效或者误写的关联条件
------解决方案--------------------
建议使用1而不是2;
可以看一下执行计划:explain一下;
------解决方案--------------------
我刚才在本地测试了一下,11g的,两种方式完全一样,连解释计划都一样

------解决方案--------------------
不知道是习惯还是什么,1看着就不爽