与笛卡尔积和JOIN相同的结果

时间:2015-03-04 18:08:18

标签: sql

JOINCartesian Product获得相同结果的必要条件是什么?

我不认为这是可能的,如果有人能说清楚我会很棒,谢谢。我搜索过但我无法回答我的问题。

3 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server,CROSS JOIN联接类型可以实现与笛卡尔积相同的功能。它匹配左表中的每一行到右边的每一行。这在以下SO问题中说明:

What is the difference between Cartesian product and cross join?

还有一些MS文档: https://technet.microsoft.com/en-us/library/ms190690%28v=sql.105%29.aspx?f=255&MSPPError=-2147217396

答案 1 :(得分:1)

所有三个查询都返回相同的结果:

select *
from t1 cross join t2 

select *
from t1,t2 

select *
from t1 join t2 
on 1=1

答案 2 :(得分:0)

笛卡尔积相当于总是求值为true的连接。 所以

 Table1 join Table2 on 1=1 

会给你一个笛卡尔产品。