这个标题听起来真的很混乱,所以让我展示我需要的东西。
table1
:
name number
Bob 6
Linda 8
Tina 3
table2
:
name number
Bob 9
Linda 2
Tina 1
我需要的是将number
的值加到第三个表(已经存在)中,以便它看起来像这样:
table3
:
name number
Bob 15
Linda 10
Tina 4
打扰一下,如果已经回答了这个问题,但我尽可能地进行了搜索,并且所有答案都是针对这个问题的,并且没有完全符合我的需要。
修改: table3
目前完全空白。它只与table1
和table2
具有相同的结构。
答案 0 :(得分:5)
您就是这样做的:
insert into table3 (name, number)
select t.name, sum(t.number) as totalNumber
from (
select name, number from table1
union
select name, number from table2
union
select name, number from table3
) t
group by t.name
如果您需要特定name
的摘要数据,可以在group by
上方添加此where子句,如下所示:
where t.name = 'Bob'
答案 1 :(得分:1)
如果你已经拥有了所有名称的table3,你可以使用下面的查询来使用带有所有名称的循环。
insert into table3 (number) values (select (t1.number + t2.number) from table1 inner join table2 on t1.name = t2.name where t1.name = 'Bob')
否则你需要写程序。
答案 2 :(得分:0)
您的预期结果...... !!! (简单和排序查询)
INSERT INTO table3 (name,number)
SELECT t.name, sum(t.number) as number
FROM (
SELECT name, number from table1
UNION
SELECT name, number from table2
) t
GROUP BY t.name
<强>结果: - 强>
<强>表3:强>
name number Bob 15 Linda 10 Tina 4