Helllo,我有以下表结构
得分表:
|..ID..User_ID..Test_ID....Test_Score | |.5.......1.........1...............999.....| |.4.......1.........3...............120.....| |.3.......1.........2...............115.....| |.2.......2.........2...............200.....| |.1.......2.........3...............123.....|
用户表:
|..ID...Username...TotalTestScore......| |.2.......Nick................1400...........| |.1.......Mike................1222...........|
我的目标是使TotalTestScore列保存在Scores表中更改为Scores表时与此User_ID相关的所有分数的总和。 我正在考虑用触发器来做,但不知道如何开始。有人可以说,如果我正在做的事情甚至可能并且可能给出一个暗示。 谢谢你的时间!
答案 0 :(得分:2)
除非你有数百万gazillions 的用户和测试分数,并且 NO INDEXES 我不会建议存储总测试分数,因为这可以简单地使用查询返回,没有触发器,没有存储列,没有问题 ......
SELECT u.ID,
u.UserName,
SUM(s.Test_Score) TotalTestScore
FROM Users u LEFT JOIN
Scores s ON u.ID = s.User_ID
GROUP BY u.ID,
u.UserName