如果两个表是内部联接的,输出将是什么?

时间:2019-08-24 15:41:24

标签: sql inner-join

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,但是面试官说错了:/

据我所知,内部联接是指两个表的共同因素。我对这个问题应该采取什么方法?

2 个答案:

答案 0 :(得分:0)

答案将是:

1
1
1
1
1
1
2
2
2
2
3
3
3
3
3
3

db<>fiddle demo

让我解释一下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;

您将获得四行,每行分别包含23

以此类推。

您的问题没有足够的信息。