在做项目的时候遇到了一个需求:就是要按规定条件筛选出一定数量的数据,然后对数据进行再排序。
比如说,获取最新时间的五十条数据,然后按时间正序进行排序。
其实就是先获取最新的五十条数据,然后把结果作为一个表集合进行再次的排序。
所以本人就理想当然地写出了如下的SQL语句:
SELECT * FROM (SELECT * FROM operator_input ORDER BY time DESC LIMIT 1,10) ORDER BY time ASC;
但是报了如下的错误:
[SQL]SELECT * FROM (SELECT * FROM operator_input ORDER BY time DESC LIMIT 1,10) ORDER BY time ASC;
[Err] 1248 - Every derived table must have its own alias
阅读了一下错误信息,发现是第一次筛选的结果没有命名一个别名造成的错误,于是修改了SQL语句,最终语句如下:
SELECT * FROM (SELECT * FROM operator_input ORDER BY time DESC LIMIT 1,10) AS t ORDER BY time ASC;