检查一个 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;
等...
注意: 这些变体用于非空值。如果出现空值,您需要确定要比较组合的准确程度。
我需要使用 '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;
等...
注意: 这些变体用于非空值。如果出现空值,您需要确定要比较组合的准确程度。