检查一个 table 中的值组合是否存在于另一个 table 中

Check whether a value combination from one table exists in another table

我需要使用 'pmi' 和 'transactionid' 列的值遍历 table(支持)中的每条记录 然后检查另一个 table (CDETAILS) 中是否存在具有完全相同值组合的记录,该记录也具有列 'pmi' 和 'transactionid'。 如果 CDETAILS 中不存在匹配记录,那么我需要从 SUPPORT table.

中选择 'pmi' 值

select pmi,来自 SUPPORT 的交易 ID

select pmi,来自 CDETAILS 的交易 ID

因此查询的输出将是来自 SUPPORT table 的 'pmi' 个值,这些值在 CDETAILS table.

中没有相应的条目

关于如何实现这一点有什么想法吗?

变体 1:

select distinct pmi 
from (
select pmi,transactionid from SUPPORT
minus
select pmi,transactionid from CDETAILS
);

变体 2:

select distinct pmi
from SUPPORT
where (pmi,transactionid) not in (select pmi,transactionid from CDETAILS);

变体 3:

select distinct pmi
from SUPPORT s
where not exist(select 0 
                from CDETAILS c 
                where s.pmi=c.pmi 
                and s.transactionid=c.transactionid);

变体 4:

select distinct pmi
from SUPPORT s
    left join CDETAILS c 
        on s.pmi=c.pmi 
        and s.transactionid=c.transactionid);
where c.pmi is null;

等...

注意: 这些变体用于非空值。如果出现空值,您需要确定要比较组合的准确程度。