如果我有2个表,则每个表只有一列:
表A:
COL1
1
1
1
表B:
COL1
1
1
1
当我说:
select * from A left join B on a.col1 = b.col1
输出相同:
select * from A,B (cartesian join).
为什么会这样?
答案 0 :(得分:0)
如果您为了清楚起见添加了另一列,我认为答案变得更容易可视化:
Table A:
ID col1
1 1
2 1
3 1
Table B:
ID col1
1 1
2 1
3 1
所以你的笛卡儿产品是:
A.ID A.Col1 B.ID B.ID
1 1 1 1
1 1 2 1
1 1 3 1
2 1 1 1
2 1 2 1
2 1 3 1
3 1 1 1
3 1 2 1
3 1 3 1
现在添加谓词WHERE A.Col1 = B.Col1
,您可以看到所有行都是如此。因此,左连接将返回与交叉连接相同的结果。