0

私はテーブルを持っていCreditcardますChildcreditcard1、、Childcreditcard2

Childcreditcard1

CreditcardID  TranscationDatetime
22222132132   2010-04-11 12:36:10.210
22222132134   2011-04-11 12:36:10.210
12364132122   2019-04-11 12:36:10.210
45677132124   2011-04-11 12:36:10.210
45677132124   2012-04-11 12:36:10.210

Childcreditcard2

CreditcardID  TranscationDatetime
22222132132   2010-04-11 12:36:10.210
22222732134   2011-04-11 12:36:10.210
12364132192   2019-04-11 12:36:10.210

MasterCreditcard

CreditcardID            primaryCreditID
22222132132     22222132132             
22222132134     22222132132             
12364132122     12364132122         
45677132124     45677132124
45677232124     45677232124     
78567723212     78567723212 
23677232124     23677232124 
45678944343     45678944343
22222732134     22222732134
12364132192              12364132192

今、これらの3つのテーブルから、私たちが持っているものcreditcardIDからだけ一致しなかったものを取得する必要があります。テーブルは常にテーブルにありますMasterCreditcardCreditcardIDChildcreditcard1Childcreditcard2MasterCreditcard

結果は次のようになります。

 45677232124
 78567723212
 23677232124
 45678944343

私の質問:

select 
      distinct(cc.CreditcardID) 
from 
      MasterCreditcard  CC  
inner JOIN 
      Childcreditcard1 c1 ON CC.CreditcardID <> c1.CreditcardID 
inner JOIN 
      Childcreditcard2 c2 ON CC.CreditcardID <> c2.CreditcardID  

私はこのように試しましたが、これは間違っているテーブルのすべてCreditcardIDの結果を与えますMasterCreditcard

4

1 に答える 1

2

これを試してみてくださいあなたのために働くかもしれません

select distinct(cc.CreditcardID) from MasterCreditcard  CC  
left JOIN Childcreditcard1 c1 ON CC.CreditcardID =c1.CreditcardID  
left JOIN Childcreditcard2 c2 ON CC.CreditcardID =c2.CreditcardID   
where c1.CreditcardID  is null or c2.CreditcardID   is null

私の答えはこの画像に基づいています、2番目の画像はouterjoinケースを残しました

代替テキスト

于 2012-04-11T12:53:08.520 に答える