使用另一个表中的数据更新一个表

时间:2014-12-17 01:18:34

标签: mysql sql qsqlquery

您好我有一张名为得分的表和另一款名为游戏的表。尽可能基本的表格看起来像这样。

分数:

球员AverageKills
extcy 5


游戏:

玩家杀敌
extcy 5
extcy 6
extcy2 4
extcy 7

我试图将杀戮中的所有杀戮的平均值仅用于extcy而不是extcy2,并通过更新原始的extcy行将其添加到得分数据中。

UPDATE scores, games
SET scores.AverageKills = AVG(games.Kills)
WHERE scores.Player = games.Player;

关于我上面的代码我做错了什么想法?

1 个答案:

答案 0 :(得分:1)

使用join和聚合:

update scores s join
       (select player, avg(kills) avgkills
        from games g
        group by player
       ) g
       on s.player = g.player
    set s.averagekils = g.avgkills;