簡體   English   中英

用一個SQL查詢更新總數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM