select * from table1 inner join table2 on table1.id = table2.id
select * from table1,table2 where table1.id = table2.id
昨天不在公司,有个同事把,用ON的写法,改成 where加条件了,请问,这样效率更高吗?
只是语法上的区别,第二种是旧的join语法,已经不提倡用了。
LZ可以参考下这个 http://stackoverflow.com/questions/1599050/ansi-vs-non-ansi-sql-join-syntax
补充一点:这两种方法没有性能上差别,生成的执行计划都一样。
用on是启发式连接,效率高,
不用on,而用where 是笛卡尔连接,效率可想而知
自己测试一下
试过的,执行计划都是一样的
1,on 是表关联用的,where是过滤条件用的。
2,语法不同。另外,理论上用on效率要高些,就你目前的sql语句(因为本来就不是很复杂)执行计划应该差不多。
个人觉得 用where 做连接可能隐式实现了inner join的功能 在效率在应该是对等 的