我有三个表: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]