2017-02-09 42 views
0
SELECT * FROM (
    SELECT * FROM cars WHERE site = '5' 
    ORDER BY cost DESC LIMIT 0 , 10 
) 
ORDER BY time 

我將如何執行這樣的SQL查詢?因此,首先它選擇成本最高的10輛車,然後將這10輛車加入數據庫的時間重新排序。從另一個查詢重新排序結果

我試圖弄明白,但我只是不能在語法一握:P

+1

你可以分享你的樣本數據庫 –

+1

只要給派生表自己的別名。所以')x ORDER BY time' – Strawberry

+0

這是一個簡單的數據庫。 ID - 時間 - 成本 - 汽車 - 顏色等 – binnathon

回答

2

只要給別名的子查詢。

SELECT * FROM (
    SELECT * FROM `cars` WHERE `site` = '5' 
    ORDER BY `cost` DESC LIMIT 0 , 10 
)t 
ORDER BY `time`; 
+0

我一直在閱讀這個應該工作,但在我的查詢中它什麼都沒做。10輛最昂貴的車沒有按時間排序,它們仍然按成本排序。 – binnathon

+0

@Strawberry:是的,你是對的。第一種是「成本」,然後是「時間」。這是我的錯誤。 – Wanderer

1
This query will give you the desired results 
SELECT * FROM (SELECT * FROM cars WHERE site = 5 
ORDER BY cost DESC LIMIT 0 , 10) as t ORDER BY time