MySQL返回由另一个子查询计数排序的结果数组

时间:2015-04-11 12:14:02

标签: mysql sql apache

我有两个表,tagdefinitionstagstagdefinitions存储标记的ID及其名称。以下是tagdefinitions的示例:

ID   Name
1    Survival
2    Prison
3    RPG
4    Creative

tags表存储使用该标记的位置的记录。每个单独的用途由serverid标识。样品:

ID   Serverid   tagid
1    3          3
2    4          3
3    4          1
4    2          4
5    2          2

我的查询需要返回tagdefinitions中最受欢迎的代码,这些代码按tags分组的tagid中的COUNT个记录排序,如果这有意义的话。在上面给出的示例中,tagdefinitions应按以下顺序返回:

3,1,2,4

这是因为3是最常见的,然后其余的只是按整数值递增。

1 个答案:

答案 0 :(得分:1)

select 
   d.ID, 
   max(Name) as Name
from tagdefinitions d
join tags t on d.ID = t.tagid
group by d.ID
order by count(t.ID) desc, d.ID