and 与where 有区别

selec * from t_shop ts left outer join t_member tm on ts.shopid = tm.shopid and tm.memberid is not nullember

和 selec * from t_shop ts left outer join t_member tm on ts.shopid = tm.shopid where tm.memberid  is not null数据

两句话执行结果有时候会是不一样的,由于第一句是先将符合条件的member 与shop 作左外链接,查 出来的是:全部shop的数据,有会员的包含会员信息,没有会员的以空代替(跟没加条件没区别)join

而第二句作的先是将shop 与member 表作左外链接,查出全部shop的信息,与第一句功能同样,而后在在结果集中筛选全部会员id不为空的数据,因此第二句查的是全部有会员的shop的信息

固然若是每一个店铺都有会员的话就不存在区别喽

相关文章
相关标签/搜索