Mysql计数连接表OneToMany

weixin_38071069 2019-09-12 01:57:31
任务: id | title | description | --------------------------------------------------------------------- 1 | Task1 | Descr1 | 2 | Task2 | Descr1 | 3 | Task2 | Descr1 | 4 | Task2 | Descr1 | 5 | Task2 | Descr1 | 信息: id | task_id | message | status | --------------------------------------------------------------------- 1 | 1 | Message1 | HOLD 2 | 1 | Message2 | OK 3 | 1 | Message3 | ERROR 4 | 1 | Message4 | ERROR 5 | 2 | Message5 | HOLD 6 | 2 | Message6 | OK 7 | 2 | Message7 | OK 8 | 2 | Message7 | OK 9 | 3 | Message7 | OK 我想在这里展示: id | title | description | count(HOLD) | count(OK) | count(ERROR) --------------------------------------------------------------------- 1 | Task1 | Descr1 | 1 | 1 | 2 2 | Task2 | Descr1 | 1 | 3 | 0 3 | Task2 | Descr1 | 0 | 1 | 0 4 | Task2 | Descr1 | 0 | 0 | 0 5 | Task2 | Descr1 | 0 | 0 | 0
...全文
38 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38071769 2019-09-12
  • 打赏
  • 举报
回复
你可以在sum和CASE上使用选择性聚合 select task.id , task.title , task.description , sum(case when Message.status = 1 then 1 else 0 end ) status1 , sum(case when Message.status = 2 then 1 else 0 end ) status2 , sum(case when Message.status = 3 then 1 else 0 end ) status3 from Task INNER JOIN Message ON Task.id = Message.task_id group by task.id , task.title , task.description

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧