2017-03-27 104 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

您应该将代码格式化为代码,方法是选择它并单击编辑器顶部栏中的大括号符号(“{}”)。 –