Mysql 为什么这个sql代码会抛出错误

Mysql 为什么这个sql代码会抛出错误,mysql,sql,Mysql,Sql,我有一个SQL代码,用于计算赢过的比赛和玩过的比赛在排行榜上的排名: SELECT count(1) FROM `account` WHERE points < SELECT points FROM (SELECT `display name`, 3*`wins`-`matches played` AS points FROM `account`) AS T WHERE `display name` = "valaki" 如果我更改wins或任何现有字段的点数,则不等式的左侧部分起作

我有一个SQL代码,用于计算赢过的比赛和玩过的比赛在排行榜上的排名:

SELECT count(1) 
FROM `account` 
WHERE points < SELECT points FROM (SELECT `display name`, 3*`wins`-`matches played` AS points FROM `account`) AS T WHERE `display name` = "valaki"

如果我更改wins或任何现有字段的点数,则不等式的左侧部分起作用,左侧部分也起作用,但代码不起作用。

子查询周围需要括号:

SELECT count(1)
FROM account a
WHERE a.points < (SELECT 3*a2.wins-a2.matchesplayed AS points
                  FROM account a2
                  WHERE a2.displayname = 'valaki'
                 );
此外,您将列称为播放的匹配项和播放名称。这是不对的。您需要在列名周围使用带空格的转义字符。我的建议是修复列名,这样就不需要转义


我还添加了表别名。这是一个好习惯。如果查询引用多个表或包含多个FROM子句,则它们确实应该是必需的。

错误消息是什么?