left join on

问题: 
select * from A left join  f on e.cust=f.account_id where f.status='0' 
与 
select * from A left join  f on e.cust=f.account_id and f.status='0' 
的区别 
在做外连查询的时候ON里面的条件是在外连执行之前筛选的的 
where后的查询条件在外联之后执行 
上面哪个是左联后!再选出f.status='0'的,等于在两个表连接 了以后 再去 做过滤 
WHERE哪个说白了就是连主表都砍掉的, 结果集里只存在f.status='0'的结果 

on 里的条件是先执行的 ,如果是and ,就可以认为是on的条件先执行,
不用在连接之后再去过滤 
left join  f on e.cust=f.account_id and f.status='0' 
这个语句会把两个表的数据都列出来 
不过f这个表的数据并不会全部列出,只会列出f表的 f.status='0' 的数据 
posted on 2014-02-28 17:00  jameshappy  阅读(230)  评论(0编辑  收藏  举报