在多个表中对计数进行排序

时间:2013-03-09 21:04:51

标签: php mysql sorting

我正在开发一个PHP / mySQL表,显示我已放入数据库的数据,并且我试图让它可以排序。我的数据库中有两个表:

表"餐厅"有列:ID和名称

表"项目"有列:ID,名称和restaurantID(restaurantID设置为使用"餐厅"表中的ID)

我想要做的是按照其ID显示在项目表中的次数对餐馆进行排序。我确信必须有一个简单的方法来做到这一点,只是没有能够解决这个问题。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

试试这个......

select r.name, count(i.ID)
from restaurant r
left join item i on i.restaurantID = r.ID
group by r.name
order by count(i.ID) desc

答案 1 :(得分:0)

我相信你可以通过使用如下的查询来实现;

SELECT restaurant.*, COUNT(items.id) AS item_id FROM restaurants, items WHERE restaurant.id = items.restaurant_id ORDER BY item_id ASC; 

如您所知,也可以按多列排序;

SELECT restaurant.*, COUNT(items.id) AS item_id FROM restaurants, items WHERE restaurant.id = items.restaurant_id ORDER BY item_id ASC, restaurant.`name` DESC;