2013-02-01 50 views
0

我認爲我需要做的事情可以使用一個查詢來完成,但我真的不確定 - 我想避免執行查詢,然後儘可能對結果數組進行排序。MySQL - 從一列中選擇最高值,然後根據第二列重新排序?

基本上,我有一個表,其中包含以下幾列:

PRODUCT_NAME,價格,出售

從這些專欄中,我想做到以下幾點:

  • 'sold' column DESC中選擇最高的20個值;
  • 通過price ASC訂購20個結果。

聽起來很簡單,但無法弄清楚如何完成這項工作以挽救我的生命,而SQL不是我的強項。如果任何人都可以幫忙,這將不勝感激!

回答

4

您可以使用子查詢爲此:

select t.* 
from (select t.* 
     from t 
     order by sold desc 
     limit 20 
    ) t 
order by price asc 

您有疑問,做了一堆東西。我會打電話給這個。這裏是你做什麼:

select t.* 
from (select t.* 
     from (<subquery 
      ) t 
     order by sold desc 
     limit 20 
    ) t 
order by price asc 
+0

我想這正是我要找的,但我不完全理解足以將其合併到我當前的查詢中: 'SELECT DISTINCT(products.prodid),products.product_name,products.unitprice,products.rrp_price,products.description,products.displayoff,products.options,offer_products.offer_text,products。 url,products.stock FROM產品LEFT JOIN offer_products ON products.prodid = offer_products.prodid WHERE displayoff!='2'$ stock_count ORDER B Y出售DESC LIMIT 0,20' 我該如何補充這個 - 其中'sold'是我想搶20最高的專欄?並且非常感謝! – user1986772

+0

想通了,並且完美地工作 - 再次,謝謝! – user1986772

0

我認爲這會做你在找什麼:

select * from table 
order by sold desc, price asc 
相關問題