如何通过两张SQL关联表查询生成带行计数的额外列?用户组统计场景
SQL查询实现
你可以使用左连接关联两张表后分组统计,即可得到符合要求的结果,具体语句如下:
SELECT ug.group_id, ug.name, COUNT(ugu.user_id) AS users_count FROM usergroup ug LEFT JOIN usergroup_user ugu ON ug.group_id = ugu.group_id GROUP BY ug.group_id, ug.name ORDER BY ug.group_id ASC
实现说明
- 采用
LEFT JOIN关联两张表,保证usergroup中没有成员的组(比如示例中的group_id=12)也能保留在结果集中 - 使用
COUNT(ugu.user_id)统计成员数,左连接后无成员的组对应的user_id为NULL,COUNT会自动统计为0,无需额外判断 - 分组条件包含
group_id和name,符合SQL语法规范,同时保证结果按用户组ID排序展示
内容的提问来源于stack exchange,提问作者Kasun Jalitha
相关产品推荐
相关产品推荐

