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

LEFT OUTER JOIN加GROUP BY仍返回重复行,求解决方案

解决左连接重复行问题:仅关联SalesForce表单条记录

针对你遇到的SalesForce表重复ID导致左连接后业务表行重复的问题,以下是几种实用的解决方法:

方法1:窗口函数筛选单条记录(通用方案)

适用于MySQL 8+、SQL Server、PostgreSQL、Oracle等主流数据库,通过给每组重复ID的记录编号,只取每组的第一条:

SELECT 
    p.*,
    sf.*
FROM 
    PedidosEspecialesZarateCabeceras p
LEFT JOIN (
    SELECT 
        *,
        -- 按ID分组,给每组记录编号,ORDER BY选NULL表示随机取任意一行
        ROW_NUMBER() OVER (PARTITION BY ID_SAP_BAYER__c ORDER BY (SELECT NULL)) AS rn
    FROM 
        SalesForce_INT_Account__c
) sf ON p.NroClienteDireccionEntrega = sf.ID_SAP_BAYER__c AND sf.rn = 1;

如果需要固定取某一行(比如最新创建的记录),把ORDER BY (SELECT NULL)换成具体字段排序即可,比如ORDER BY CreatedDate DESC。

方法2:GROUP BY聚合(适合仅需部分字段的场景)

如果只需要SalesForce表的部分附加字段,用GROUP BY保证每个ID只返回一行,其他字段用聚合函数取任意值:

SELECT 
    p.*,
    sf.ID_SAP_BAYER__c,
    sf.任意字段1,
    sf.任意字段2
FROM 
    PedidosEspecialesZarateCabeceras p
LEFT JOIN (
    SELECT 
        ID_SAP_BAYER__c,
        MAX(字段1) AS 任意字段1, -- 用MAX/MIN取该ID下任意值
        MIN(字段2) AS 任意字段2
    FROM 
        SalesForce_INT_Account__c
    GROUP BY 
        ID_SAP_BAYER__c
) sf ON p.NroClienteDireccionEntrega = sf.ID_SAP_BAYER__c;

方法3:PostgreSQL专属:DISTINCT ON

如果用的是PostgreSQL,用DISTINCT ON可以快速获取每组的第一条记录:

SELECT 
    p.*,
    sf.*
FROM 
    PedidosEspecialesZarateCabeceras p
LEFT JOIN (
    SELECT DISTINCT ON (ID_SAP_BAYER__c) *
    FROM SalesForce_INT_Account__c
    ORDER BY ID_SAP_BAYER__c, (SELECT NULL) -- 控制取哪条记录
) sf ON p.NroClienteDireccionEntrega = sf.ID_SAP_BAYER__c;

方法4:关联子查询取TOP 1(兼容老版本数据库)

如果数据库不支持窗口函数(比如MySQL 5.x),用子查询获取每个ID对应的任意一条主键,再关联取完整数据:

SELECT 
    p.*,
    sf.*
FROM 
    PedidosEspecialesZarateCabeceras p
LEFT JOIN SalesForce_INT_Account__c sf 
    ON p.NroClienteDireccionEntrega = sf.ID_SAP_BAYER__c
    AND sf.主键字段 = (
        SELECT TOP 1 主键字段 
        FROM SalesForce_INT_Account__c 
        WHERE ID_SAP_BAYER__c = p.NroClienteDireccionEntrega
    );

把主键字段替换成SalesForce表的实际主键列即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:50:25