SQL 查询中的语法错误

Wrong syntax in a SQL query

我正在尝试编写一个查询,该查询在比赛事件中给球员一个分数,将其乘以另一列,然后乘以 3,然后将结果复制到球员 table玩家已经存在的地方。 有错误,但我找不到问题所在。你能帮我解决这个问题吗?

UPDATE
j7yh8_bl_match_events,
j7yh8_bl_players

SET
j7yh8_bl_players.player_points = SELECT COUNT(j7yh8_bl_match_events.e_id) * j7yh8_bl_match_events.ecount * 3,

WHERE
j7yh8_bl_match_events.player_id = j7yh8_bl_players.id AND j7yh8_bl_match_events.e_id = 5;

任何帮助将不胜感激。

谢谢。

在 MySQL 中,您可以使用 joinupdate。但是,任何聚合函数都必须在子查询中。

我不是 100% 确定这个表达式是用来计算分数的。似乎这样的事情解决了你的问题:

UPDATE j7yh8_bl_players p LEFT JOIN
       (SELECT me.player_id, SUM(me.ecount) * 3 as points
        FROM j7yh8_bl_match_events me
        WHERE me.e_id = 5
        GROUP BY me.player_id
       ) me
       ON me.player_id = p.id
    SET p.player_points = me.points