首页 > 解决方案 > CROSS JOIN和INNER JOIN、LEFT JOIN、RIGHT JOIN、OUTER JOIN的区别

问题描述

据我了解,它CROSS JOIN本质上是一个产生笛卡尔积的叉积。INNER JOIN, RIGHT JOIN, LEFT JOIN,OUTER JOIN笛卡尔积除了它们不产生重复并且对它们应用了某些条件之外,是否也是?

谢谢!

注意:我不相信这是重复的. 该链接没有详细说明与我正在寻找的细节的区别。由读者来挖掘和推断差异。我在下面提供的答案有望为读者节省一些时间。

标签: mysqljoin

解决方案


JOIN 操作可以指定为 CARTESIAN PRODUCT 操作后跟 SELECT 操作。

...

JOIN 的结果是一个关系 Q,其中 n + m 个属性 Q(A1, A2, ... , An, B1, B2, ... , Bm) 按顺序排列;Q 对于每个元组组合都有一个元组——一个来自 R,一个来自 S——只要组合满足连接条件。这是笛卡尔积和联接之间的主要区别。在 JOIN 中,只有满足连接条件的元组组合出现在结果中,而在 CARTESIAN PRODUCT 中,所有元组组合都包含在结果中。连接条件是在两个关系 R 和 S 的属性上指定的,并针对每个元组组合进行评估。连接条件评估为 TRUE 的每个元组组合作为单个组合元组包含在结果关系 Q 中。

资料来源:数据库系统基础(第 7 版),Elmasri


推荐阅读