将两行中一行的一列值合并到第三个表中

时间:2014-05-06 07:54:23

标签: php mysql sql

这个标题听起来真的很混乱,所以让我展示我需要的东西。

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目前完全空白。它只与table1table2具有相同的结构。

3 个答案:

答案 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