失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql left 笛卡尔积_实操 - mysql 表连接笛卡尔积 (joinleft join)

mysql left 笛卡尔积_实操 - mysql 表连接笛卡尔积 (joinleft join)

时间:2023-09-10 09:51:49

相关推荐

mysql left 笛卡尔积_实操 - mysql 表连接笛卡尔积 (joinleft join)

实操 - mysql 表连接笛卡尔积 (joinleft join)

1 为什么两张表连接会出现重复数据

2 表的连接过程是怎样的?

举例:

表 A:

1

0

表 B:

1

0

0

2

执行语句: select * from A join B on A.id = B.id;

顺序如下:

join 形成的表:11

10

10

12

01

00

00

02

on 之后:

1 1

0 0

0 0

所以表连接后出现了重复数据

两张表的关系存在一对多的关系, 所以就会出现重复情况

什么是笛卡尔积呢?

就是两张表连接的时候, 是通过笛卡尔积的方式连接

笛卡尔 (Descartes) 乘积又叫直积假设集合 A={a,b}, 集合 B={0,1,2}, 则两个集合的笛卡尔积为 {(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)} 可以扩展到多个集合的情况类似的例子有, 如果 A 表示某学校学生的集合, B 表示该学校所有课程的集合, 则 A 与 B 的笛卡尔积表示所有可能的选课情况

所以两个表连接后 (使用 join 逗号连接) 就是笛卡尔积

无论是 join 还是 left join, 都是先把表以笛卡尔积的方式连接, 然后通过 on 来筛选数据, join 只显示符合条件的数据, left join 不仅会显示所有满足条件的数据, 而且还会把主表没有匹配上的也显示出来

left join 后面必须加上 on

来源: /infodetail-2483665.html

如果觉得《mysql left 笛卡尔积_实操 - mysql 表连接笛卡尔积 (joinleft join)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。