2012-04-11 80 views
0

我有表CreditcardChildcreditcard1Childcreditcard2SQL查詢問題加入

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 

現在這三個表我需要得到creditcardID僅從MasterCreditcard任何CreditcardID我們在Childcreditcard1Childcreditcard2表將永遠存在於MasterCreditcard

結果應該是表應該喜歡這個

這不匹配
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 

我想這樣,但是這給結果所有CreditcardIDMasterCreditcard表這是不對的

+0

就是答案對你有幫助嗎? – 2012-04-11 13:17:03

回答

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 

工作,我的答案是基於該圖像,第二圖像左外連接的情況下

alt text

+0

有一個小的變化 – happysmile 2012-04-12 11:21:29

+0

@happysmile - 可以說這是嗎? – 2012-04-12 11:22:33

+0

從MasterCreditcard CC中選擇distinct(cc.CreditcardID)left outer JOIN Childcreditcard1 c1 ON CC.CreditcardID = c1.CreditcardID left outer JOIN Childcreditcard2 c2 ON CC.CreditcardID = c2.CreditcardID where c1.CreditcardID is null andc2.CreditcardID is null – happysmile 2012-04-13 16:02:47