从表 A 中选择不在表 B 中的列组合

use*_*009 3 sql sql-server sql-server-2008

我有两组表格,其中包含一个帐户上的所有联系人的职位等。出于数据迁移的目的,我需要从 TableB 中不存在的表 A 中选择所有 ContactsId 及其帐户 ID。它是 ContactId 和 AccountID 的组合。我尝试了以下方法:

Select * from Final_Combined_Result wfcr 

 WHERE NOT EXISTS (Select Contact_ID, Account_ID from Temp_WFCR)  
Run Code Online (Sandbox Code Playgroud)

我知道这完全没有问题,但我在这里查看了其他几个问题,但无法找到合适的解决方案。

我也试过这个:

Select * from Final_Combined_Result wfcr  
WHERE NOT EXISTS 
  (Select Contact_ID, Account_ID from Temp_WFCR as tc 
   where tc.Account_ID=wfcr.Account_InternalID 
   AND tc.Account_ID=wfcr.Contact_InternalID)
Run Code Online (Sandbox Code Playgroud)

这似乎是正确的,但我想确定一下。

jue*_*n d 5

Select wfcr.ContactsId, wfcr.AccountID
from Final_Combined_Result wfcr 
left join Temp_WFCR t_wfcr ON t_wfcr.ContactsIds = wfcr.ContactsId 
                          AND t_wfcr.AccountID = wfcr.AccountID
WHERE t_wfcr.AccountID is null 
Run Code Online (Sandbox Code Playgroud)

看到这个关于连接的很好的解释