我正在研究 SQL Server 2008,想知道笛卡尔积和交叉连接之间的区别。有人可以帮我澄清这个概念吗?
问问题
63093 次
4 回答
39
当您进行交叉连接时,您将获得笛卡尔积。第一个表中的每一行都与第二个表中的每一行匹配
于 2012-08-08T09:25:39.757 回答
13
CROSS JOIN
This join is a Cartesian join that does not necessitate any condition to join. The resultset contains records that are multiplication of record number from both the tables.
/* CROSS JOIN */
SELECT t1.*,t2.*
FROM Table1 t1
CROSS JOIN Table2 t2
Sorce:
APRIL 13, 2009 BY PINAL DAVE
SQL SERVER – Introduction to JOINs – Basic of JOINs
于 2014-05-23T19:56:51.863 回答
3
两个连接都给出相同的结果。交叉联接是 SQL 99 联接,笛卡尔积是 Oracle 专有联接。
没有“where”子句的交叉连接给出笛卡尔积。笛卡尔积结果集包含第一个表中的行数乘以第二个表中的行数。(导致结果集中的维度更高)。
于 2012-08-08T10:50:53.940 回答
0
笛卡尔积没有任何条件,结果集的总行为 r=r1*r2,其中第一个关系中的 r1 行和第二个关系中的 r2 行。连接满足特定条件
于 2021-10-15T07:26:40.967 回答