笛卡儿积和交叉连接有什么区别?

时间:2012-08-08 09:21:22

标签: sql-server

我正在研究SQL Server 2008,并想知道笛卡尔积与交叉连接之间的差异。有人可以帮我清除这个概念吗?

3 个答案:

答案 0 :(得分:32)

当您进行交叉加入时,您将获得笛卡尔积。第一个表中的每一行都与第二个表中的每一行匹配

enter image description here

答案 1 :(得分:8)

CROSS JOIN

  

此联接是笛卡尔联接,不需要任何条件   加入。结果集包含乘以的记录   两个表中的记录号。

cross join

/* 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

答案 2 :(得分:2)

两个连接都给出相同的结果。交叉连接是SQL 99连接,笛卡尔产品是Oracle专有连接。

没有'where'子句的交叉连接提供了笛卡尔积。 笛卡尔积结果集包含第一个表中的行数,乘以第二个表中的行数。 (导致结果集中的维度更高)。