使用 oracle SQL 识别父子记录并避免合并

Identify Parent Child records using oracle SQL and avoid merge

我需要使用 SQL 查询查找父子帐户,并且如果幸存者是子帐户而失败者是父帐户则避免合并过程。 我在 table x 中有以下格式的记录

Survivor       Loser
400-GIZ-514   400-1729E3

Table x是一个临时的table,里面的记录存储在base tables 在 base table 中,这 2 条记录之间的关系是

          ROW_ID          PAR_OU_ID

Parent    400-1729E3      NULL
Child     400-GIZ-514     400-1729E3

请帮助我进行查询以识别这些类型的记录并标记它们,这样它们就不会在每晚的合并过程中被提取。

此查询将只检索行没有匹配父项的记录:

SELECT * FROM BASE_TABLE A
 WHERE NOT EXISTS (SELECT 1 FROM BASE_TABLE B WHERE A.PAR_OU_ID = B.ROW_ID)

应该能够使用

从临时 table 中删除记录
DELETE FROM tablex 
WHERE EXISTS (
    SELECT 1 
    FROM  basetable
    WHERE basetable.row_id = tablex.survivor
          AND basetable.par_ou_id = tablex.loser
    )