事例:
SELECT a.id,
b.id,
c.id,
d.id
FROM a_test a
inner join b_test b ON a.id= b.id and a.code=b.code left join c_test c ON b.id= c.id and b.code=c.code left join d_test d ON d.id = c.id
where a.name='小明'问下: a.code=b.code 换成最后面 where a.code=b.code b.code=c.code 换成最后面 where b.code=c.code 有什么区别吗?这条SQL 执行顺序是什么样子的?谢谢。
SELECT a.id,
b.id,
c.id,
d.id
FROM a_test a
inner join b_test b ON a.id= b.id and a.code=b.code left join c_test c ON b.id= c.id and b.code=c.code left join d_test d ON d.id = c.id
where a.name='小明'问下: a.code=b.code 换成最后面 where a.code=b.code b.code=c.code 换成最后面 where b.code=c.code 有什么区别吗?这条SQL 执行顺序是什么样子的?谢谢。
--解释
explain plan for
SELECT a.id,
b.id,
c.id,
d.id
FROM a_test a
inner join b_test b ON a.id= b.id and a.code=b.code left join c_test c ON b.id= c.id and b.code=c.code left join d_test d ON d.id = c.id
where a.name='小明';
--查看执行计划
select * from table(dbms_xplan.display());
--你看下执行出来的predicate information就清楚顺序是什么样的了