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

如何合并同表数据行?Inner Join去重及关联数据需求求助

解决自连接重复数据问题

原表数据

Name       Type       JobName  Desc
first      SMARt      first    the main first 
first      SufFold    second   the second, depend on first

需求目标

生成仅包含SufFold类型数据的表格,同时关联同Name下SMARt类型记录的描述,结果结构如下:

Name       JobName     Desc              Desc2
first      second      the main first    the second, depend on first

问题分析

自连接出现大量重复数据,核心原因是仅通过Name关联,未限定Type匹配条件,导致同Name下的不同类型记录产生笛卡尔积。

解决方案

方案1:带精准条件的自连接

在连接条件中明确限定两边的Type,确保仅匹配目标类型的记录,避免无意义的关联:

SELECT 
    sf.Name,
    sf.JobName,
    sm.Desc AS Desc,
    sf.Desc AS Desc2
FROM 
    your_table sf
INNER JOIN 
    your_table sm 
    ON sf.Name = sm.Name 
    AND sm.Type = 'SMARt'  -- 仅关联SMARt类型的记录
WHERE 
    sf.Type = 'SufFold';  -- 仅保留SufFold类型的主记录

方案2:子查询方式(更简洁)

用子查询直接定位对应Name的SMARt描述,确保每个SufFold记录只匹配一条目标数据:

SELECT 
    sf.Name,
    sf.JobName,
    (
        SELECT sm.Desc 
        FROM your_table sm 
        WHERE sm.Name = sf.Name AND sm.Type = 'SMARt' 
        LIMIT 1  -- 若同Name有多条SMARt记录,取第一条
    ) AS Desc,
    sf.Desc AS Desc2
FROM 
    your_table sf
WHERE 
    sf.Type = 'SufFold';

补充说明

如果同Name下存在多条SMARt或SufFold记录,可根据实际业务逻辑添加额外条件(比如JobName匹配、时间排序等),进一步精准定位关联记录,彻底避免重复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:20:42