我有2张桌子:
表A:
A | B | C | D
qwe 4 2019 10
qwe 2 2020 5
qwe 5 2019 5
表B:
A | B
3 2019
4 2019
5 2019
6 2019
7 2019
8 2019
9 2019
10 2019
11 2019
12 2019
1 2020
2 2020
我希望输出表包含表A中表B的所有数字和年份。因此,文本qwe应该显示12次,并带有相应的数字。
输出表:
A | B | C | D
qwe 3 2019 0
qwe 4 2019 10
qwe 5 2019 5
qwe 6 2019 0
qwe 7 2019 0
qwe 8 2019 0
qwe 9 2019 0
qwe 10 2019 0
qwe 11 2019 0
qwe 12 2019 0
qwe 1 2020 0
qwe 2 2020 5
注意:表A比qwe包含更多的值,因此我尝试为所有不同的记录复制12个值。对于不存在的记录,D列应显示0。
我尝试了完全外部联接,但是完全外部联接为表A中的qwe的每个记录产生12条记录。
答案 0 :(得分:0)
最后一栏很简单。 。 。 left join
:
select b.a, b.b, coalesce(a.d, 0) as d
from b left join
a
on b.a = a.b and b.b = a.c;
第一列实际上没有意义,但是也许:
select max(a.a) over () as a,
b.a as b, b.b as c, coalesce(a.d, 0) as d
from b left join
a
on b.a = a.b and b.b = a.c;
答案 1 :(得分:-1)
您可以添加不同的 从...中选择不同的*