如何更新另一个表中多个表的总和


How to update sum of multiple tables in another table

我有三个表:mtsr1a、engr1a和maincores,如下所示。

此表是一门课程,录取分数为第2列,总成绩为第7列

mtsr1a

Column2     Column7
15/001      8       
15/002      6       
15/003      7       
15/004      3       
15/005      7       

此表是另一门课程,录取分数为第2列,总成绩为第7列

engr1a

Column2     Column7
15/001      9       
15/002      6       
15/003      4       
15/004      8       
15/005      1       

这是我用来获取两个表的总和的sql代码

它在mysql上运行良好,但当浏览器刷新时会恢复

select Column2,sum(Column7) total
from
(
    select Column2,Column7
    from mtsr1a
    union all
    select Column2,Column7
    from engr1a
) t
group by Column2

使用代码我得到了更好的总和

Column2     total
15/001      17      
15/002      12      
15/003      11      
15/004      11      
15/005      8   

这是非常正确的,但我想要我将使用的代码,并用上面得到的结果更新具有overall_scores列的下一个表。

我期待着这样的东西:

主核

Column2     overall_scores
15/001      17      
15/002      12      
15/003      11      
15/004      11      
15/005      8
  • 我自己也尝试过,但我知道这将是未来像我这样的新手的解决方案。我需要这个来进行排名,我在这里已经有了代码,但如果可以包括在内,这将是我学习的额外优势。

  • 另一个是如何在php中使用sql代码,以便在管理员单击按钮时更新数据库。谢谢

如果要在第三个表中插入两个列值,则使用类似的insert into .. select from

insert into mainscores
select Column2,
sum(Column7) total 
from (select Column2,
             Column7 
             from mtsr1a 
         union all 
             select Column2,
                    Column7 from engr1a ) t 
group by Column2

(或)

如果你想UPDATE一个特定的列,那么使用像这样的更新联接

UPDATE mainscores a 
    JOIN (
    select Column2,
    sum(Column7) total 
    from (select Column2,
                 Column7 
                 from mtsr1a 
             union all 
                 select Column2,
                        Column7 from engr1a ) t 
    group by Column2 ) xx
ON a.Column2 = xx.Column2 
SET a.overall_scores = xx.total;
UPDATE [Main_Table]  set [Main_Table]= sumVal.total from Main_Table
     JOIN (
     select [column2],
     sum([column7]) total 
        from (select [column2],
                 [column7] 
                 from [mtsr1a] 
             union all 
                 select [column2], 
                        [column7] from [engr1a] ) val 
    group by [column2])sumVal
ON Main_Table.[column2] = sumVal.[column2]