MySQL中left join相关问题整理

  1. 云栖社区>
  2. 袋鼠云技术团队>
  3. 博客>
  4. 正文

MySQL中left join相关问题整理

dtstack太阳 2019-08-06 15:43:15 浏览438
展开阅读全文

【说明】
本文主要是针对以下两个问题进行的分析整理:
1、如果SQL中存在left join,是否绝对无法改写?
2、在left join左边的表,并不一定就是驱动表,explain执行计划可能会将left join右边的表作为驱动表,什么情况下,会产生这种情况?

【left join的用途】

我们先来了解下left join的实际用途,即它会产生什么效果。
left join(左联接),会返回包括左表中的所有记录和右表中联结字段相等的记录。
这句话的含义是,如果a left join b,那么返回的结果集是“a表与b表join关联得到的结果集”+"a表中,无法与b关联的其它数据",其中,a与b无法关联的数据只会显示a表的内容,b表对应的内容都为空。所以a left join b得到的数据行数,是大于等于a表的数据行的。

示例:

a、b表的结构、数

网友评论

登录后评论
0/500
评论
dtstack太阳
+ 关注
所属云栖号: 袋鼠云技术团队