我有3个表:mtsr1a,engr1a和mainscores,如下所示。
此表是一个课程,其编号为Column2,总性能为Column7
mtsr1a
Column2 Column7
15/001 8
15/002 6
15/003 7
15/004 3
15/005 7
此表是另一个课程,其中matric编号为Column2,总体性能为Column7
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列。
我期待的是:
mainscores
Column2 overall_scores
15/001 17
15/002 12
15/003 11
15/004 11
15/005 8
你想在第3个表中插入列值然后使用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]