MySQL LIMIT不起作用/范围

时间:2015-02-20 03:11:02

标签: mysql sql-limit

我通过左连接得到了排名查询。尝试将结果限制为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

我知道我可以将它包装到另一个选择中然后限制它(这就是它的用法和工作原理)但是需要进行更改,因为这是更复杂的查询的一部分。

查询确实对DESCASC更改做出了反应,但在LIMIT val上没有做出反应。 如果我将b.user_id更改为app.user_id - 它会抛出#1054 - Unknown column 'app.user_id' in 'on clause'

如何将此限制为最多3行?我使用的LIMIT的范围在哪里?

1 个答案:

答案 0 :(得分:1)

您显示的查询最多会返回三行。 LIMIT子句的“范围”位于您显示的查询中最外面的SELECT

我们可以设置一个SQL小提琴演示,但你可以轻松地测试它。您无法让该查询返回三行以上。