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

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


————————————————
版权声明:本文为CSDN博主「咔嚓杨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013252047/article/details/78746494

发布了34 篇原创文章 · 获赞 19 · 访问量 75万+

猜你喜欢

转载自blog.csdn.net/yongzhen150/article/details/103822366