0

他の質問に基づいてこれに対する答えを見つけようとしましたが、必要に応じてロジックを実装できませんでした。

必要な情報は簡単に取得できますが、それらの情報でテーブルを更新することはできません。

次のクエリを使用して、必要な値をすべて選択しました。

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」をクエリで返された値に設定するにはどうすればよいですか?

お時間をいただきありがとうございます。

4

1 に答える 1

1
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
于 2013-04-24T21:04:12.950 に答える