and 与where 有区别

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

和 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的数据,有会员的包含会员信息,没有会员的以空代替(跟没加条件没区别)

而第二句做的先是将shop 与member 表做左外连接,查出所有shop的信息,与第一句功能一样,然后在在结果集中筛选所有会员id不为空的数据,所以第二句查的是所有有会员的shop的信息

当然如果每个店铺都有会员的话就不存在区别喽



 

转载于:https://my.oschina.net/u/1248940/blog/369050

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值