left join 的困惑 ,SQL的估计执行计划有用没?????
rivey 2004-11-10 08:49:46 表1:t1
id area
2 fz
4 qz
5 qz
6 fz
7 fz
3 fz
表2:t2
id area
1 fz
3 fz
4 qz
5 fz
7 qz
表3:t3
id area
1 fz
2 fz
3 qz
4 qz
5 fz
6 fz
以上是我测试数据的三个简单表,
当我用left join 对三个表进行相连时,结果不尽相同,代码如下.
请教高手,SQL系统的left join 内部是怎么处理的? 它所添加的条件是怎么处理的??
SQL的执行过程 是按照它的估计执行计划执行吗??????????
select *
from t1 left join t2 on t1.id =t2.id
left join t3 on t1.id=t3.id
select *
from t1 left join t2 on t1.id =t2.id
left join t3 on t1.id=t3.id
where t2.area='fz' and t3.area='fz'
select *
from t1 left join t2 on t1.id =t2.id and t3.area='fz'
left join t3 on t1.id=t2.id and t3.area='fz'