SQL加入两个视图

ham*_*son 2 sql database join views

加入这两个表需要一些帮助

我有两个看起来像这样的观点

view1                view2
+------+--------+    +------+--------+
| code | SUM(*) |    | code | SUM(*) |
+------+--------+    +------+--------+
| AAA  |      4 |    | AAA  |      4 |
| BBB  |      3 |    | CCC  |      1 |
+------+--------+    +------+--------+
Run Code Online (Sandbox Code Playgroud)

我想将它们加入到一个看起来像这样的表中

+------+--------+
| code | SUM(*) |
+------+--------+
| AAA  |      4 |
| BBB  |      3 |
| CCC  |      1 |    
+------+--------+ 
Run Code Online (Sandbox Code Playgroud)

我试过了,但只是失败了......

小智 8

select *
from view1
union
select *
from view2
Run Code Online (Sandbox Code Playgroud)

利用一个UNION不会返回重复的条目,这是你正在寻找的东西.


hal*_*dan 6

你可以使用一个UNION:

SELECT * FROM view1
UNION DISTINCT
SELECT * FROM view2
Run Code Online (Sandbox Code Playgroud)


Ada*_*son 5

对于您的第一个结果,使用的答案union将起到作用:

select * from view1
union
select * from view2
Run Code Online (Sandbox Code Playgroud)

但是,鉴于你的一个列是一个总和,这似乎不太可能是你真正想要的.

对于第二个结果(添加值的位置),您需要使用a union和子查询:

select
    code,
    sum(yourcol)

from
(
    select
        code,
        yourcol

    from view1

    union all

    select
        code,
        yourcol

    from view2
) source

group by code
Run Code Online (Sandbox Code Playgroud)