我试图根据其他问题为此找到答案,但我无法将逻辑落实到我的必要性中。

我可以轻松获得所需的信息,但是无法使用这些信息更新表。

我已使用以下查询选择了所有必需的值:

select `roleid`,
(select count(`killerid`) from `kills` where `killerid`=`roleid`) as `kills`,
(select count(`corpseid`) from `kills` where `corpseid`=`roleid`) as `deaths`
from `characters`


因此,此查询返回角色的ID以及其相应的死亡人数和死亡人数。

现在,我需要知道:如何更新表“字符”,将行“ kills”和“ deaths”设置为查询中的返回值?

感谢您的时间。

最佳答案

UPDATE characters c
  LEFT JOIN
    ( SELECT killerid, count(*) as kill_num FROM kills GROUP BY killerid ) k1
  ON c.roleid = k1.killerID
  LEFT JOIN
    ( SELECT corpseid, count(*) as death_num FROM kills GROUP BY corpseid ) k2
  ON c.roleid = k2.corpseID
SET c.kills = k1.kill_num, c.deaths = k2.death_num

关于mysql - 用结果集更新角色的杀戮和死亡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16201831/

10-11 12:05