2009-04-19 14 views
0

全く同じ構造を持つ2つのテーブルがあります。テーブル間で平等でない2つのテーブルのデータを表示するSQLクエリを探します

表MasterList ACCT_ID(9) 名(25) アドレス(35) シティ(15) 状態(2) 郵便番号(5)

表NewMasterList ACCT_ID( 9) 名(25) アドレス(35) シティ(15) 状態(2) 郵便番号(5)

BOTHテーブルにない各テーブルのすべてのレコードのAcct_IDとNameを表示するクエリが必要です。 acct_IDが主キーであると仮定すると、

答えて

1

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) 

歓声

+0

提示された両方の回答は同じで正しい結果を返しましたが、少なくとも私のレベルでは理解しやすいようにこれを選択しました。 – Keniwan

3

:私は次のクエリを推定

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

をヘルプ - 必要があります。このクエリでは、働いていただけでなく、2番目のクエリを提示します。それぞれが正しいデータを返しましたが、ネストされた選択肢と組み合わせを使用する2番目のものは私のレベルで少し分かりました。 – Keniwan

+0

これはもっと速くなければなりませんが、それはおそらく問題ではありません。これは分析のために一度行うことです。 –

関連する問題