有些同学纠结on后面跟and的问题。研究了一下发现这之前确实没有在书上看到,但是确有这个规则。 以left join为例,当在on后面使用and,分为两种情况。 第一种是and的过滤语句对左表做过滤时,过滤不生效,强制返回所有左表行。第二种情况是 and的过滤语句对右表做过滤时,过滤生效,对右表过滤后按照原left join的逻辑连接。那么此时NULL仍然会出现,可以视为把条件放在on语句后面提早了执行顺序,提前对右表做了一次子查询的过滤再进行连接,是一个简化的语法。 那么当我们把查询month(qd.date) = 8 放在where 处,则是连接完成后再进行过滤,此时会被NULL过滤掉。
6

相关推荐

渴望wlb的牛油果很...:直说卡第一学历不就行了 非得拐弯抹角
点赞 评论 收藏
分享
未知的命运:大佬这都找不到我还找啥啊
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务