寻找SQL查询来显示两个表之间的数据不是在表之间共用的

问题描述:

我有两个表具有完全相同的结构。寻找SQL查询来显示两个表之间的数据不是在表之间共用的

表MasterList ACCT_ID(9) 名称(25) 地址(35) 市(15) 状态(2) 邮编(5)

表NewMasterList ACCT_ID( 9) 名称(25) 地址(35) 市(15) 状态(2) 邮编(5)

我需要一个查询来显示每个表中不在两个表中的所有记录的Acct_ID和Name。

我相信下面的查询应该帮助 -

select Acct_id,Name 
from MasterList 
where Acct_id not in (select distinct Acct_id from NewMasterList) 

union 

select Acct_id,Name 
from NewMasterList 
where Acct_id not in (select distinct Acct_id from MasterList) 

欢呼

假设acct_ID是主键:

SELECT COALESCE(ml.acct_ID, nml.acct_ID) AS AccountID 
    , COALESCE(ml.name, nml.name) AS Name 
FROM MasterList ml 
    FULL OUTER JOIN NewMasterList nml ON nml.Acct_ID=ml.Acct_ID 
WHERE nml.acct_ID IS NULL OR ml.acct_ID IS NULL 
+0

此查询工作以及提出的第二个查询。每个都返回了正确的数据,尽管第二个使用嵌套选择的联合在我的级别上更容易理解。 – Keniwan 2009-04-19 23:42:05

+0

这个应该快得多,但这可能并不重要:这是你曾经做过的分析工作。 – 2009-04-20 00:17:02