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

MySQL如何对两张关联表使用GROUP_CONCAT实现字段值合并输出

MySQL分组拼接查询解决方案

你需要先修正JOIN关联的字段错误(servers表存储标识的字段是id而非names),再搭配MySQL提供的GROUP_CONCAT聚合函数,配合分组逻辑即可实现目标效果。

最终SQL语句

SELECT 
  users.name,
  GROUP_CONCAT(servers.name SEPARATOR ', ') AS server_list
FROM users 
INNER JOIN servers 
ON users.names = servers.id
GROUP BY users.name;

实现逻辑说明

  1. 修正关联条件:把原来的ON users.names = servers.names改为ON users.names = servers.id,和你的表结构对应,正确关联用户和对应的服务器记录,得到你现在已经查询到的4行明细结果
  2. 分组:通过GROUP BY users.name将同一个用户的所有行合并为一个分组
  3. 拼接:使用GROUP_CONCAT函数,把每个分组内的多个服务器名称,用, 作为分隔符拼接成单个字符串,最终得到每行一个用户、对应所有服务器合并展示的效果

可选扩展

如果需要调整拼接顺序,可以在GROUP_CONCAT中增加排序规则,示例如下:

-- 按服务器ID倒序拼接名称
GROUP_CONCAT(servers.name ORDER BY servers.id DESC SEPARATOR ', ')

如果需要修改分隔符,直接替换SEPARATOR后的内容即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 20:06:02