从JOIN
和Cartesian Product
获得相同结果的必要条件是什么?
我不认为这是可能的,如果有人能说清楚我会很棒,谢谢。我搜索过但我无法回答我的问题。
答案 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
会给你一个笛卡尔产品。