SQL語句巢狀查詢問題

CapricornM發表於2017-06-15

在做專案的時候遇到了一個需求:就是要按規定條件篩選出一定數量的資料,然後對資料進行再排序。
比如說,獲取最新時間的五十條資料,然後按時間正序進行排序。
其實就是先獲取最新的五十條資料,然後把結果作為一個表集合進行再次的排序。
所以本人就理想當然地寫出瞭如下的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;

相關文章