LEFT JOIN 使用注意事项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LEFT JOIN 使用注意事项相关的知识,希望对你有一定的参考价值。
参考技术A left join 通俗的解释:以左表为主表,返回左表的所有行,如果右表中没有匹配,则依然会有左表的记录,右表字段用null填充。看起来非常好理解,但实际操作的过程中可能会有一些很容易被忽略的点。如果存在多个left join on,请注意on后面的条件与哪个表关联。这一条统计的SQL很重要!例如表A,B,C,A left join B on A.x = B.x left join C on A.x = C.x,B和C的都要和A建立关联,B和C之间是没有任何数据上的关系。但是 如果把A.x = C.x改成B.x = C.x,那么B和C的表数据先建立关联并过滤数据,再与A表数据进行关联,这样可能会出现数据丢失!
接下来我们进一步看一下连接条件写在on里和写在where里的区别。在这之前,我们可以看看left join的具体执行逻辑。我参考了网上以为大神的博客:
https://developer.aliyun.com/article/718897 ,总结如下
————————————————
参考链接:
https://blog.csdn.net/qq_30038111/article/details/103594735
https://zhuanlan.zhihu.com/p/85856388
left join分页查询
参考技术A 场景:表A和表B是1对多关系,分页查询表A的20条记录。处理:不用PageHelper,先按条件count表A,计算offset。
注意:如果两个表中的字段名相同,list'中只有一条记录,可以在resultMap中用别名来解决,这里是不取这个字段。
以上是关于LEFT JOIN 使用注意事项的主要内容,如果未能解决你的问题,请参考以下文章