我有一个包含1000条记录的表和一条包含999条的表。表结构看起来像这样......
TBL1
RecNo ClietID FName LName
1 177 bob doe
tbl2
recNo2 ClientID fName Lname
1 177 bob doe
结构非常相似,一个是所有客户端的主表,另一个是所有DELeted客户端的表。我正在尝试加入这两个表,所以它向我展示了目前不在tbl2中的tbl1中的记录....任何想法?
答案 0 :(得分:2)
另一种选择;如果您知道Tab1
的记录总是超过Tab2
且其列/数据结构相同,并且您使用所有列来表示唯一性,那么您也可以执行以下内容:
Select * From Tab1
Except
Select * From Tab2
答案 1 :(得分:1)
返回任何一个表中不存在的记录。 假设clientID和recNo定义了唯一的记录。 使用带有空键检查的完全外连接应该可以正常工作
SELECT A.*, B.*
FROM tbl1 A
FULL OUTER JOIN tbl2 B
on A.RecNo = b.RecNo
and A.ClientID = B.ClientId
WHERE (A.ClientID is null and A.RecNo is null)
or (B.ClientID is null and B.RecNo is null)
如果我们知道事实,tab2记录较少,因此我们想检查tab1中是否存在删除记录,我们可以使用不存在...
SELECT *
FROM tab1 A
WHERE NOT EXISTS (SELECT *
FROM tab2 B
WHERE A.ClientID = B.ClientID
and A.RecNo= B.recNO)