我通过左连接得到了排名查询。尝试将结果限制为3行,但改为获得所有结果。
SELECT
CONCAT(users.name, users.surname) n,
total_time v,
1+(SELECT count(*) from app a WHERE a.total_time > b.total_time) r
FROM app b
LEFT JOIN users
ON b.user_id = users.user_id
ORDER by total_time DESC
LIMIT 3
我知道我可以将它包装到另一个选择中然后限制它(这就是它的用法和工作原理)但是需要进行更改,因为这是更复杂的查询的一部分。
查询确实对DESC
到ASC
更改做出了反应,但在LIMIT val
上没有做出反应。
如果我将b.user_id
更改为app.user_id
- 它会抛出#1054 - Unknown column 'app.user_id' in 'on clause'
如何将此限制为最多3行?我使用的LIMIT
的范围在哪里?
答案 0 :(得分:1)
您显示的查询最多会返回三行。 LIMIT
子句的“范围”位于您显示的查询中最外面的SELECT
。
我们可以设置一个SQL小提琴演示,但你可以轻松地测试它。您无法让该查询返回三行以上。