关于join的on和where
1 left join 就是 left outer join 的缩写形式,两者功能一样
2 left outer join 显示左表的全部数据,未匹配项写null,right outer join 保留右表的全部数据,未匹配项写null
3 没有left inner join
4 inner join 只显示左表和右表向匹配的数据
5 关于on...and... 以及 on..where....and....的区别
on条件是外联接时在生成临时表时使用的联结条件,不论从表是确定值还是NULL,主表所有的值都会出现;
如果再加上and条件; 如果and条件引用的是主表的列,则对结果毫无影响,主表的所有纪录依然会全部出现;如果and条件引用的是从表的列,则不符合条件的从表纪录显示NULL;where条件是在临时表生成后,再对临时表进行过滤的条件。临时表中的所有纪录都受影响,不符合条件的纪录被过滤出结果集。
***********************************************************************************
***********************************************************************************
在On 中写and后,临时表的数辆不会因此而减少,个人感觉不建议这样写。应该把and统一写在where中。
![](http://1841.img.pp.sohu.com.cn/images/blog/2010/3/19/13/24/12826fd5874g213.jpg)
posted on 2010-07-06 13:27 tigerhuolh 阅读(162) 评论(1) 编辑 收藏 举报