SQL для объединения двух представлений - PullRequest
2 голосов
/ 20 ноября 2011

Нужна помощь в соединении этих двух таблиц

У меня есть два представления, которые выглядят следующим образом

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

Я хочу объединить их в таблицу, которая выглядит следующим образом

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

Я пытался, но только потерпел неудачу ..

Ответы [ 3 ]

8 голосов
/ 20 ноября 2011
select *
from view1
union
select *
from view2

Использование UNION не вернет повторяющихся записей, что, как вам кажется, вы ищете.

6 голосов
/ 20 ноября 2011

Вы можете использовать UNION для этого:

SELECT * FROM view1
UNION DISTINCT
SELECT * FROM view2
5 голосов
/ 20 ноября 2011

Для вашего первого результата ответы, опубликованные с использованием 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
...