1.什么是联结?
表和表之间是通过列产生关系的,这在SQL里叫做联结。联结(join):是通过表和表之间的关系将两个表合并在一起的操作。
常用的联结有4种类型,分别是交叉联结,内联结,左联结,全联结,
今天我们来学习:交叉联结
2.什么是交叉联结?
交叉联结,也叫笛卡尔积,它的英文单词叫crossjoin。交叉联结是将表中的每一行都与另一个表中的每一行合并在一起。
比如下面图片中:
表1有3行,用1、2、3分别表示表中的3行数据
表2有2行数据,用A、B分别表示表中的2行数据。
表1和表2进行交叉联结的过程是这样的:
表1的第1行分别于表2中的2行合并在一起,这样就产生了2行数据
表1的第2行分别于表2中的2行合并在一起,这样就产生了2行数据
表1的第3行分别于表中的2行合并在一起,这样就产生了2行数据
交叉联结结果的行数是两张表中行数的乘积。表1有3行,表2有2行,所以结果就有3*2=6行
3.生活中的交叉联结案例
交叉联结其实在我们生活中就有,扑克牌就是一个交叉联结。
13张牌包括从1-10(1通常表示为A)以及J、Q、K
4种花色:黑桃、红桃、方块、梅花
图片来源:By Trainler-Own work,CC BY3.0
https://commons.wikimedia.org/w/index.php?curid=7104281
13张牌中的每一张与花色中的每一种颜色结合,总共产生了52张牌,再加上大小王是54张牌。
4.交叉联结有什么用?
交叉联结其实在实际业务中用的比较少,是因为:
1)结果行数太多,需要花费大量的运算实际和高性能设备的支持
2) 结果没有实际价值
那为什么还要在这里介绍呢?
这是因为交叉联结是其他联结运算的基础,下次我们学习的其他联结是在交叉联结的基础上加了过滤条件。
推荐:如何找到好工作?
网友评论