JOIN 正在创建重复键

问题描述 投票:0回答:0

tempdb 正在创建重复的 PK 值。

我已将其缩小到特定的内部联接。

所有加入到此返回 [3,4,5,6,7,8,9] 具有共享的 FK 值。

在此加入后,它返回值 [7,8,8,9]。

INNER JOIN VEX
    ON VEX_D_KEY = VEXT_D_KEY
    AND T_KEY = VEXT_T_KEY

此连接需要重新处理以处理重复的 PK 值,应该 被删除。

INNER JOIN TA
    ON TEX_O_KEY = TA_O_KEY
    AND TXS_TL_KEY= TA_TL_KEY
    AND (VEXT_O_KEY IS NULL
        OR VEXT_O_KEY = ISNULL(TA_O_KEY, 0))

加入后我们得到 [7,8,8].

在重复值上数据不相同。我说我相信 2nd JOIN 需要返工的原因是因为

8 - VEX_O_KEY = NULL
8 - VEX_O_KEY = TA_O_KEY

还有

7 - VEX_O_KEY = NULL

我该如何处理?

数据库很大。恢复这不是一个选项。

sql tsql duplicates primary-key rdbms
© www.soinside.com 2019 - 2024. All rights reserved.