首页 > 解决方案 > MySQL 关联表的连接数

问题描述

我想计算一个项目中的成员数量并将其加入到所有项目的查询结果中。

我尝试过处理子查询和连接,但还没有实现我想要的。

这是我的桌子:

项目

project_id | name | description | start_date | end_date

项目成员

user_id | project_id

例如,项目 1 有 2 个成员,项目 2 有 5 个成员。

查询的期望输出:

project_id | name | description | start_date | end_date | number_of_members
---------------------------------------------------------------------------
1          | xxx  | xxxxxxxxxxx | xxxxxxxxxx | xxxxxxxx | 2
2          | xxx  | xxxxxxxxxxx | xxxxxxxxxx | xxxxxxxx | 5

非常感谢任何帮助,谢谢!

标签: mysql

解决方案


从中选择您想要的列projectCOUNT(project_members.user_id )如果您LEFT JOIN按照所示进行操作,将为您提供每个项目中的用户数。

SELECT
  project_id, name,
  description,
  start_date,
  end_date,
  COUNT( project_members.user_id ) AS number_of_members
FROM project
LEFT JOIN project_members ON
  ( project_members.project_id = project.project_id )
GROUP BY
  project.project_id

推荐阅读