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

如何编写MySQL查询将多记录的单列数据合并到单个单元格?

如何编写MySQL查询将多记录的单列数据合并到单个单元格?

看起来你需要把关联表中同一个订单下的所有商品ID合并成一个逗号分隔的字符串,这在MySQL里用GROUP_CONCAT()函数就能轻松搞定啦!

你的表结构

orders表

idcustomer
19373
20358

orderlines表

idorder_idarticle_id
31922
41928
51942
62022
72069

期望结果

idcustomerarticles
1937322,28,42
2035822,69

解决方案:使用GROUP_CONCAT()的查询语句

直接用关联查询+分组+GROUP_CONCAT()就能实现,具体SQL如下:

SELECT 
    o.id,
    o.customer,
    GROUP_CONCAT(ol.article_id) AS articles
FROM 
    orders o
JOIN 
    orderlines ol ON o.id = ol.order_id
GROUP BY 
    o.id, o.customer;

简单解释一下:

  • JOIN orderlines ol ON o.id = ol.order_id:把两个表通过订单ID关联,让每个订单对应的所有商品记录都能匹配上
  • GROUP BY o.id, o.customer:按订单ID和客户分组,确保每个订单只返回一行结果
  • GROUP_CONCAT(ol.article_id):把分组后每个订单对应的所有article_id用逗号连接成字符串,逗号是默认分隔符,如果你需要其他分隔符,可以加SEPARATOR '分隔符'来指定,比如GROUP_CONCAT(ol.article_id SEPARATOR ';')

如果你的商品ID可能存在重复,想要去重的话,只需要改成GROUP_CONCAT(DISTINCT ol.article_id)就可以了。

备注:内容来源于stack exchange,提问作者siska.77

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 15:48:08