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 中,您可以使用 join
和 update
。但是,任何聚合函数都必须在子查询中。
我不是 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
我正在尝试编写一个查询,该查询在比赛事件中给球员一个分数,将其乘以另一列,然后乘以 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 中,您可以使用 join
和 update
。但是,任何聚合函数都必须在子查询中。
我不是 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