我如何加入这两张桌子?

时间:2010-11-10 13:56:56

标签: sql database

我有一张桌子(t1)

id    score
22     1
35     3
51     4

和另一个(t2)

id    score
22     2
35     1
10     5

我想使用SQL查询创建下表。

id    score
10      5
22      3
35      4
51      5

即。我需要合并id并将分数加在一起。

理想情况下在ANSI SQL中。

3 个答案:

答案 0 :(得分:2)

SELECT  id, SUM(score)
FROM    (
        SELECT  *
        FROM    t1
        UNION ALL
        SELECT  *
        FROM    t2
        ) q
GROUP BY
        id

答案 1 :(得分:2)

使用UNION ALL将两个表的所有记录合并为一个GROUP BY以获取每个ID的总和。

SELECT  id, SUM(score)
FROM    (
          SELECT  id, score
          FROM    t1      
          UNION ALL 
          SELECT  id, score
          FROM    t2
        ) t
GROUP BY
        t.ID

答案 2 :(得分:0)

create table a(id int, score int)
create table b(id int, score int)

insert into a values(1, 10)
insert into a values(2, 5)
insert into b values(1, 15)
insert into b values(3, 20)

select id, sum(score) from 
(select * from a
 union all
select * from b) s
group by id