我有一个看起来像这样执行并完美运行的查询:
UPDATE users
SET player_skill = (
(
SELECT
sum(avg_score)
FROM
skill
WHERE
username = "JohnDoe"
AND game = "Bingo"
) -
(
SELECT
sum(avg_score)
FROM
events
WHERE
game = "Bingo"
)
) WHERE username = "JohnDoe"
我想添加这样的除法运算符:
UPDATE users
SET player_skill = (
(
(
SELECT
sum(avg_score)
FROM
skill
WHERE
username = "JohnDoe"
AND game = "Bingo"
) - (
SELECT
sum(avg_score)
FROM
events
WHERE
game = "Bingo"
)
) / SELECT
COUNT(*)
FROM
skill
WHERE
username = "JohnDoe"
AND game = "Bingo"
)
WHERE
username = "JohnDoe"
它向我吐出错误代码
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COUNT(*)
FROM
skill
WHERE
username = "JohnDoe"
AND game = "Bingo" )
) W' at line 21
我已经尝试了一段时间,但似乎无法弄清楚为什么它不会让它运行。我对此有类似的疑问似乎很好,但我不能让这个问题起作用。
非常感谢任何帮助。
答案 0 :(得分:0)
试试这个
UPDATE users
SET player_skill = (
SELECT (sum(s.avg_score) - sum(e.avg_score))/COUNT(e.*)
FROM skill s
INNER JOIN events e on s.game = e.game
WHERE e.username = "JohnDoe"
AND e.username = "Bingo"
)
当您尝试此查询时,您将收到此错误:
[Err] 1064 - 您的SQL语法没有错误。你不需要查看与你的MySQL服务器版本相对应的手册,以获得正确的语法,不要使用任何附近的东西。