Table A: 1 1 1 2 2 3 3 3 4 4
Table B: 1 1 2 2 3 3 5 5 5
如果两个表是内部联接的,输出将是什么?
我的回答是1 1 2 2 3 3,但是面试官说错了:/
据我所知,内部联接是指两个表的共同因素。我对这个问题应该采取什么方法?
答案 0 :(得分:0)
答案将是:
1
1
1
1
1
1
2
2
2
2
3
3
3
3
3
3
让我解释一下1: 在表A中有三行包含1,在表B中有两行包含1,因此最终输出将具有3 * 2 =6。对于其他值。
答案 1 :(得分:0)
这完全取决于查询内容。如果您这样做:
select *
from a join
b
on 1=0;
您将不会获得任何行。
如果您这样做:
select *
from t1 join
t2
on 1=1;
您将生成笛卡尔积。
如果您这样做:
select *
from a join
b
on a.col = 4 and b.col = 2;
您将获得4行,其中4 2
重复四次。
如果您这样做:
select *
from a join
b
on b.col^2 = a.col^3 + 1;
您将获得四行,每行分别包含2
和3
。
以此类推。
您的问题没有足够的信息。