2013-06-24 40 views
0

從表1選擇所有和所有從表2那裏是在表中沒有匹配的行1

Table 1 

W__ | F__ | C__ | Code 
15__ 4___ 35__ A0 
5___ 1___ 2___ A5 
8___ 3___ 7___ A1 

Table 2 

W__ | F__ | C__ | Code 
15__ 4___ 35__ NULL 
2___ 3___ 6___ NULL 

Desired output 

15, 4, 35, A0 
5, 1, 2, A5 
8, 3, 7, A1 
2, 3, 4, NULL 

我想從表1中選擇所有的行,並從表2中不包含所有行追加一個匹配的W,F和C列到表1中的任何東西。任何幫助表示讚賞。下劃線只存在使間距一致

+0

輸出沒有意義的,你在哪裏得到'2,3, 4,null' – Woot4Moo

+0

你是對的。我的意思是2,3,6,null – user2516549

回答

2

您可以一起選擇與UNION做到這一點與NOT EXISTS:

Select * from Table1 
UNION ALL 
Select * from Table2 WHERE NOT EXISTS (SELECT * FROM Table1 
             WHERE Table1.w = Table2.w 
              AND Table1.f = Table2.f 
              AND Table1.c = Table2.c) 
+0

編輯爲包含您所建議的「所有」。你用'UNION ALL'得到了什麼樣的錯誤? – Andomar

+0

每當我發佈一個答案與聯盟 - 我只是得到一個消息,它沒有發佈,甚至試圖在這個評論中我得到:'在評論Submisssion發生錯誤' –

+0

測試...:聯盟所有的作品?似乎工作正常... –

1
SELECT w,f,c,code 
FROM [table 1] 
UNION ALL 
SELECT t2.w,t2.f,t2.c,t2.code 
FROM [table 2] t2 
LEFT OUTER JOIN [table 1] t1 
ON t2.w = t1.w and t2.f = t1.f and t2.c = t1.c 
WHERE t1.code is null 
+0

你檢查過那個解釋計劃嗎? – Woot4Moo

+0

執行計劃可能不是最好的,但它應該完成考慮table1.code不爲空的任何行 – JoseTeixeira

相關問題