mysql - 返回主题标签帖子的数量 sql, mysql
问题描述
我有两个表,1)主题标签表和 2)主题标签关系表。
第一个列出主题标签,第二个将主题标签与帖子相关联。
表标签
id_hashtag | hashtag |
3 #love
4 #monday
5 #yesterday
**TABLE HASHTAGS RELATIONS**
id_hashtag | id_post |
3 1234
3 1235
3 1236
4 1541
4 1543
5 1720
5 1721
5 1722
5 1723
5 1724
预期输出
#yesterday - 5 posts
#love - 3 posts
#monday - 2 posts
SQL 查询 (MYSQL)
SELECT hs.*, ht.count(*) as count ?
FROM hashtags hs
LEFT JOIN hashtag_relation hr ON hs.id_hashtag=hr.id_hashtag
WHERE 1
ORDER BY (ht.number of posts?)
DESC
LIMIT 10
问题
我如何获得每个主题标签的帖子数量?我尝试使用ht.count(*)
解决方案
您需要使用GROUP BY
:
SELECT hs.hashtag, count(hr.id_hashtag) as cnt
FROM hashtags hs
LEFT JOIN hashtag_relation hr ON hs.id_hashtag=hr.id_hashtag
GROUP BY hs.hashtag
ORDER BY cnt DESC LIMIT 10;
推荐阅读
- sql - 选择列之间记录的唯一组合
- java - 类加载器泄漏是如何发生的
- sql - Left Join on three tables in access with Group by
- c# - C# Razor 页面和跨站点脚本(XSS)问题
- javascript - 反应路由器链接使用
- angular - 浏览器无法导航到路由链接
- python - 错误:找不到满足要求 tensorflow 的版本
- flutter - setState() 在构造函数中调用:_ModalIngredientsState#60ddf(生命周期状态:已创建,无小部件,未安装)
- python - 为什么 python 发布请求返回 200 html 而 CURL 返回 303(重定向)?
- heroku - 在 Heroku 上托管 .NET Core 控制台应用程序时保持应用程序处于活动状态