2017-03-27 106 views
1

我有我的訂單表這樣的如何從訂購表中獲得最受歡迎的產品?

Id | Order_id | item_id | restaurant_id | price 
-------------------------------------------------- 
    1 | 1  | 1  | 2   | 200 
--------------------------------------------------- 
    2 | 2   | 1  | 2    | 200 
--------------------------------------------------- 
    3 | 3  | 2  | 2    | 400 

我怎樣才能從訂單表按升序熱門項目,其中restaurant_id是2 我想是這些 受歡迎的項目

1 
2 

我嘗試,但我只得到總數,我卡在那裏

SELECT COUNT(item_id) FROM `item_orders` WHERE restaurant_id = 1 
+0

在哪個參數你是在決定任何項目的普及計數?我的意思是它只是計數或任何其他值?如果它是計數,那麼你可以按照count的降序使用group by。 – Pavvy

+0

基於item_id –

+0

因此,不要使用計數使用Sum() – Pavvy

回答

2

這樣,你得到的每個項目,並責令其按計數

SELECT item_id, COUNT(*) 
FROM `item_orders` 
WHERE restaurant_id = 1 
GROUP BY item_id 
ORDER BY COUNT(*) DESC 
+0

爲什麼只限於2? –

+0

對不起,我誤解了你的問題,我會編輯我的回答:) –

1

試試這個;

select * from 
(SELECT COUNT(item_id) as count FROM `item_orders` 
WHERE restaurant_id = 1) as T 
order by `count` asc 
+1

您應該將代碼格式化爲代碼,方法是選擇它並單擊編輯器頂部欄中的大括號符號(「{}」)。 –