【发布时间】:2019-12-26 23:21:25
【问题描述】:
我有两个表:team 和 team_member。 team_member 表显示了哪个用户是哪个团队的成员。
+---------+------------+
| team_id | name |
+---------+------------+
| 1 | Marketing |
| 2 | New Launch |
| 3 | Sales |
+---------+------------+
+---------+---------+
| user_id | team_id |
+---------+---------+
| 21 | 2 |
| 4369 | 1 |
| 4369 | 2 |
| 4369 | 3 |
| 100 | 1 |
| 21 | 1 |
+---------+---------+
我需要一个查询,告诉我给定 user_id 所属的所有团队的 team_id 和团队名称,以及(这是困难的部分)每个团队中所有成员的计数。
对于上述数据,如果我们查看用户 21,我希望看到以下输出,因为用户 21 是团队 1 和团队 2 的成员,团队 1 有 3 名成员,团队 2 有 2 名成员。
+---------+------------+-------+
| team_id | name | count |
+---------+------------+-------+
| 1 | Marketing | 3 |
| 2 | New Launch | 2 |
+---------+------------+-------+
知道如何在 SQL 中执行此操作(最好是 MySQL,如果这会有所不同)?获取前 2 列没有问题(见底部),但我不知道如何添加计数。谢谢!
SELECT team.team_id, team.name
FROM team
LEFT JOIN team_member ON team.team_id = team_member.team_id
WHERE team_member.user_id = 21
【问题讨论】: