You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MySQL JOIN+GROUP_CONCAT实现用户组ID的聚合关联查询?

解决方案

你可以使用MySQL的GROUP_CONCAT()函数实现将同一用户的组ID拼接为逗号分隔的字符串,结合LEFT JOIN确保所有用户都被包含(即使没有所属组的用户也会显示,组ID字段为NULL):

SELECT 
    u.id,
    u.email,
    GROUP_CONCAT(gu.group_id SEPARATOR ',') AS group_ids
FROM 
    users u
LEFT JOIN 
    group_user gu ON u.id = gu.user_id
GROUP BY 
    u.id, u.email;

关键说明:

  • GROUP_CONCAT(gu.group_id SEPARATOR ','):将每个用户对应的所有group_id值用逗号连接成一个字符串,SEPARATOR ','可省略,逗号是默认分隔符。
  • LEFT JOIN:保留users表中的所有记录,若用户在group_user表中无对应数据,group_ids会返回NULL。
  • GROUP BY u.id, u.email:按用户的唯一标识id和email分组,确保每个用户仅返回一行结果。

执行该查询后,会得到符合预期的结果:

idemailgroup_ids
1email_1@test.com1
2email_2@test.com1,5,6
3email_3@test.com5,6
4email_4@test.com1
5email_5@test.com5

内容的提问来源于stack exchange,提问作者silverrulezz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:40:18