0
点赞
收藏
分享

微信扫一扫

表连接时的笛卡尔积

_刘彦辉 2022-04-30 阅读 69

这个问题找了好久,终于找到答案了,记录以下

表的笛卡尔连接过程:

  • a. 从驱动表(左表)取出N条记录;
  • b. 拿着这N条记录,依次与被驱动表(右表)中的每一行合并得到笛卡尔积

在join连接时哪个表是驱动表,哪个表是被驱动表:

  • 1.当使用left join时,左表是驱动表,右表是被驱动表
  • 2.当使用right join时,右表时驱动表,左表是驱动表
  • 3.当使用join时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表

对于如下
beauty表
在这里插入图片描述
girls表
在这里插入图片描述
二者连接的笛卡尔积:

SELECT *
FROM beauty, boys

结果如下(非全部数据):
在这里插入图片描述
可以看出来,boys表为驱动表,由于boys表放到了girls表后面,所以查询全部数据的时候,boys表的内容在girls表的后面。

因为在数学中笛卡尔积是不满足交换律的,所以一定要搞明白笛卡尔积是怎样做的,数学中关于笛卡尔积的计算例子如下:
在这里插入图片描述

举报

相关推荐

笛卡尔积是什么

0 条评论