Mysql中left join on and和left join on where 的区别

最近在看别人写的代码时,看到了left join on and 的写法,刚开始以为他写错了,是不是少东西了,后来研究了一下,人家是对的,而且这种写法将作表的数据全部保留,有点孤陋寡闻,头一次遇到这种写法,记录下来吧。

LEFT JOIN ON WHERE:在临时表生成后,再对临时表的数据进行过滤,再返回左表。

LEFT JOIN ON AND:在临时表生成的过程时,ON中的条件不管是否为真,都将返回左表。

比如有一个用户表user


有一个成绩表score


想查询总分大于250分的信息

SELECT * FROM `user` a LEFT JOIN score b ON a.id = b.user_id AND total_score > 250

结果是


用where条件查询SELECT * FROM `user` a LEFT JOIN score b ON a.id = b.user_id WHERE total_score > 250


用and这种情况也比较多,比方说就是想统计满足条件的左边表的记录,就算为空,也要列出来,那这种方法就很好使用,否则还要在连接一次用户表。

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值