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

MySQL多表LEFT JOIN查询:获取分组名称拼接结果

解决方案

没问题,这事儿用MySQL的GROUP_CONCAT()函数配合LEFT JOIN就能轻松搞定,刚好匹配你的需求。

最终查询语句

SELECT 
    t1.id,
    t1.description,
    GROUP_CONCAT(t3.group_name SEPARATOR ', ') AS group_names
FROM 
    Table1 t1
LEFT JOIN 
    Table2 t2 ON t1.id = t2.id
LEFT JOIN 
    Table3 t3 ON t2.group_id = t3.group_id
GROUP BY 
    t1.id, t1.description
ORDER BY 
    t1.id;

代码解释

  • LEFT JOIN:确保即使某个id在Table2/Table3里没有对应的分组数据,也能保留Table1里的记录(你的示例数据里所有id都有分组,所以结果和INNER JOIN一致,但LEFT JOIN更通用)。
  • GROUP_CONCAT():这是核心函数,它会把同一分组下的group_name字段值拼接成一个逗号分隔的字符串,SEPARATOR ', '指定分隔符(默认就是逗号,这里写上更明确)。
  • GROUP BY:必须按t1.id和t1.description分组,这样才能把同一个id的所有分组名聚合到一起。
  • ORDER BY:让结果按id排序,和你期望的输出顺序一致。

执行结果

运行这条查询后,你会得到和你期望完全一致的结果:

iddescriptiongroup_names
i1description1group1, group2
i2description2group2
i3description3group1, group3
i4description4group1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:20:20