【问题标题】:Connect SELECT AVG and UPDATE连接 SELECT AVG 和 UPDATE
【发布时间】:2014-09-21 14:22:12
【问题描述】:

我有一个小问题。我使用 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 注释。

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

【问题讨论】:

    标签: mysql sql-update average


    【解决方案1】:

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

    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;
    

    【讨论】:

    • 看起来不错,但我有一个问题:“Ligaspiel”来自“ws_spiel”。必须有一个检查,如果 ws_spiel_berechnung.id = ws_spiel.id AND ws_spiel.typ = 'Ligatyp' 你明白吗?感谢您的帮助!
    • 嗨,又是我。我仍然有同样的问题。谁能帮我?谢谢!
    • 您好,谁能帮帮我?非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多