连接SELECT AVG和UPDATE

时间:2014-09-21 14:22:12

标签: mysql sql-update average

我有点问题。我用phpMyAdmin。

这是我的尝试:

SELECT AVG (ws_spiel_berechnung.note) as Test
FROM ws_spiel_berechnung 
LEFT JOIN ws_spieler
ON ws_spiel_berechnung.spieler_id = ws_spieler.id
INNER JOIN ws_spiel ON ws_spiel.id = ws_spiel_berechnung.spiel_id
where ws_spiel.spieltyp = 'Ligaspiel' and ws_spieler.id = 6875;
update ws_spieler set note_anpassung = Test where id = 6875

我想将AVG(ws_spiel_berechnung.note)带到ws_spieler.note_anpassung。例如,SELECT AVG的结果为2,46。现在2,46应更新为note_anpassung。但这不起作用(我认为是因为"测试")。

另一个问题:id只是一个例子。我想为每个id(它从id 1开始,在id 1000处结束)。目标是我在"ws_spieler.note_anpassung"的每个ID都有AVG注释。

我使用谷歌和本网站,但我不明白。如果你能帮助我,我会很高兴的。抱歉我的英语;)

1 个答案:

答案 0 :(得分:0)

在这种情况下,我认为你可以用相关的子查询做你想做的事情:

update ws_spieler s 
     set s.note_anpassung = (select avg(sp.note)
                             from ws_spiel_berechnung sp
                             where sp. spieler_id = s.id
                            )
     where  s.spieltyp = 'Ligaspiel' and s.id = 6875;