我有两个表,一个调用Tags
,另一个调用Posts_Tags
作为多对多的关系。 Posts_Tags
包含两列,分别为postid
和tagid
。 Tags
数据库还包含一个id
列,其对应于联合表中的tagid
。按照使用的帖子数来订购标签?
我想要得到一个显示给用户的标签名列表,按它们使用的次数排序。利用这些信息,我已经构建了两个表连接在一起的查询:
SELECT Tags.name FROM `Tags` LEFT JOIN `Posts_Tags` ON Tags.id = Posts_Tags.tagid
这让我的标签名称的列表,但很明显,它不会做的比从刚刚选择数据纯粹得多Tags
表。我知道我需要在某处添加一个ORDER BY
子句(可能还有一个GROUP BY
,但我不知道如何构建查询。)
我应该向此查询添加什么,以便按照每个帖子的数量成功地对结果进行排序标签中使用?
+1但是FWIW最好给予COUNT(*)别名和ORDER BY别名。 ORDER BY * ordinal *是不推荐的SQL语法。 –
@BillKarwin更新你的建议,谢谢。 – Laurence