[英]updating totals with one sql query
我有一張桌子,上面有球員,還有一張桌子,上面有個人資料。 個人資料(用戶)可以“聲明”玩家,以便將玩家記錄中的“個人資料”字段設置為個人資料的ID。
我想要個人資料表中的totalscore屬性(包含所有先前得分值的總和)。 為了計算過去提交的數據,我編寫了以下查詢:
UPDATE profiles,players
SET profiles.`totalscore` = profiles.`totalscore` + players.`score`
WHERE players.`profile`=profiles.`id`
但是,totalscore設置為最后找到的值。 我該如何解決?
您必須使用分組依據。
UPDATE profiles
inner join (
select profileid,SUM(score) as playersscore
from players
group by
profileid) players
ON players.profileid=profiles.id
SET profiles.totalscore = profiles.totalscore + playersscore
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.