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

如何合并两张MySQL表记录并生成含新增列的分组结果

解决方案:合并两张MySQL表并按侧边聚合信息

首先通过Serial字段关联两张表,再按用户分组,利用条件聚合分别提取左侧和右侧的保修日期与序列号,以下是实现的SQL语句:

SELECT
    t1.User_ID,
    t2.Name,
    MAX(CASE WHEN t2.Side = 'Left' THEN t1.Warranty END) AS `Left Warranty`,
    MAX(CASE WHEN t2.Side = 'Right' THEN t1.Warranty END) AS `Right Warranty`,
    MAX(CASE WHEN t2.Side = 'Left' THEN t1.Serial END) AS `Left Serial`,
    MAX(CASE WHEN t2.Side = 'Right' THEN t1.Serial END) AS `Right Serial`
FROM table1 t1
JOIN table2 t2 ON t1.User_ID = t2.ID AND t1.Serial = t2.Serial
GROUP BY t1.User_ID, t2.Name
ORDER BY t1.User_ID DESC;

代码说明:

  • 表关联:通过User_ID(table1)与ID(table2)、Serial字段建立关联,确保每条设备记录匹配到对应的用户和侧边信息。
  • 条件聚合:用CASE WHEN配合MAX函数,分别筛选左侧、右侧的保修日期和序列号。由于每个用户的单个侧边仅对应一条记录,MAX会保留非空值,无对应侧边时返回NULL。
  • 分组排序:按User_ID和Name分组(每个用户对应唯一Name),最后按User_ID降序排列,与目标结果顺序一致。

执行该语句即可得到你需要的合并格式结果。

内容的提问来源于stack exchange,提问作者chris.cavage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 20:41:02