SQL加入两个视图

时间:2011-11-20 01:29:51

标签: sql database join views

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

我有两个看起来像这样的视图

view1                view2
+------+--------+    +------+--------+
| code | SUM(*) |    | code | SUM(*) |
+------+--------+    +------+--------+
| AAA  |      4 |    | AAA  |      4 |
| BBB  |      3 |    | CCC  |      1 |
+------+--------+    +------+--------+

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

+------+--------+
| code | SUM(*) |
+------+--------+
| AAA  |      4 |
| BBB  |      3 |
| CCC  |      1 |    
+------+--------+ 

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

3 个答案:

答案 0 :(得分:8)

select *
from view1
union
select *
from view2

使用UNION不会返回重复的条目,这就是您正在寻找的内容。

答案 1 :(得分:6)

您可以使用UNION

SELECT * FROM view1
UNION DISTINCT
SELECT * FROM view2

答案 2 :(得分:5)

对于您的第一个结果,使用union发布的答案可以解决问题:

select * from view1
union
select * from view2

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

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

select
    code,
    sum(yourcol)

from
(
    select
        code,
        yourcol

    from view1

    union all

    select
        code,
        yourcol

    from view2
) source

group by code