mysql - 在mysql数据库中计数
问题描述
这是我的查询:
Select articles.id,articles.userid,articles.article,count(articles_likes.id), count(article_dislikes.id)
from articles
Left join article_likes
on article_likes.id=articles.id
Left join article_dislikes
on article_dislikes.id=articles.id
group by articles.id ;
我想计算 article_likes 表和 article_dislikes 表中的行数,我得到正确的值最多 2 行..当有第三个等条目时..我的行数计数错误...我没有知道问题出在哪里..我想我可能会得到错误的值,因为我两次使用同一张表...请帮助我
我有三张桌子
1)articles 包含id,userid 和article
2)Articles_likes 表包含-like_id,user_id 和article_id
3)Articles_dislikes 表包含dislike_id,user_id 和article_id
解决方案
在每个表中分别聚合articles_likes
,articles_dislikes
然后加入articles
结果:
select a.id, a.userid, a.article,
coalesce(l.likes, 0) likes,
coalesce(d.dislikes, 0) dislikes
from articles a
left join (
select article_id, count(*) likes,
from articles_likes
group by article_id
) l on l.article_id = a.id
left join (
select article_id, count(*) dislikes,
from articles_dislikes
group by article_id
) d on d.article_id = a.id
articles_likes
和articles_dislikes
to的正确连接articles
也是由article_id
到id
of的列articles
。
推荐阅读
- jpa - 在无状态 EJB Bean 中检索 EnityManagerFactory 的问题
- c++ - 在 C 中重塑张量
- javascript - Chrome 扩展,添加监听器无响应
- javascript - Ajax 发布 FormData 和表单
- android - 如何从 RecyclerView 清理数据侦听器/订阅?
- mongodb - 在 kubernetes 中部署 MongoDB 不会创建 pod/services
- ios - Swapping rootViewController on UIWindow does not deallocate view controller
- bash - 如何在 rsync 命令上获得空运行状态
- here-api - REST vs Android API
- java - Eclipse Maven 项目和 GIT