我正在研究两个应该相等的表。我运行此查询以查看表 B 中针对表 A 缺少哪些记录(我们有一个 3 列键):
select *
from tableA A
left join TableB B
on A.joinField1 = B.joinField1
and A.joinField2 = B.joinField2
and A.joinField3 = B.joinField3
where B.joinField1 is null
or B.joinField2 is null
or B.joinField3 is null
这样,如果 A 中的记录在 B 中丢失,它将在此查询中被过滤(基于键)。出于某种原因,当我随机选择其中一条丢失的记录并直接在表 B 中查找(使用简单的选择,按键过滤)时,它会显示出来。为什么我的查询在实际匹配时包含它们?没有空值和字段格式匹配。