Mysql 为什么这个sql代码会抛出错误
我有一个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或任何现有字段的点数,则不等式的左侧部分起作
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子句,则它们确实应该是必需的。错误消息是什么?