CROSS JOIN和INNER JOIN,LEFT JOIN,RIGHT JOIN,OUTER JOIN之间的区别[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

据我所知,CROSS JOIN本质上是一种产生笛卡尔积的交叉积。是INNER JOINRIGHT JOINLEFT JOINOUTER JOIN笛卡儿产品,除了它们不产生重复并且适用于它们的某些条件的事实?

谢谢!

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

mysql join
2个回答
-1
投票

交叉连接将一个表中的所有行与另一个表中的所有行匹配。内部联接匹配一个或多个字段。如果您有一个包含10行的表,而另一个包含10行,则这两个连接的行为会有所不同。

交叉连接将返回100行,它们将不相关,只是所谓的笛卡尔积。内部联接将匹配记录。假设有一个主键,而另一个是外键,则返回10行。

![1]:https://www.sunnyhoi.com/app/uploads/2017/07/inner-join-vs-cross-join-in-sql-server.jpg

注意:您可以从此链接https://www.w3schools.com/sql/sql_join.asp中查看更多信息


-1
投票

可以将JOIN操作指定为CARTESIAN PRODUCT操作,然后执行SELECT操作。

...

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

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

© www.soinside.com 2019 - 2024. All rights reserved.