2012-07-14 48 views
1

這是下面的數據表2中合併伯爵從兩個表中的一個

ID2  | Count2 
-----------+----------- 
1345653   5 
534140349  5 
682527813  4 
687612723  3 
704318001  5 

這是我下面的數據在表1

ID1  | Count1 
-----------+----------- 
1345653   4 
704318001  4 

如果你看到上面的表格此1345653表2中有5 count但是在表1中它具有4 count,與表2中的這個ID 704318001具有5 count相同,但是在表1中它具有4 count。所以我需要在Output中像這樣展示。

ID    Count2 Count1 
----------------------------------- 
1345653   5  4 
534140349  5  0 
682527813  4  0 
687612723  3  0 
704318001  5  4 

這是可能的SQL?如果是,我該如何實現?

回答

1

SQL 101

select id2, count2, coalesce(count1, 0) as count1 
    from table2 
    left outer join table1 
    on id1=id2 
+1

我已經創建了這個SQL小提琴,[http://sqlfiddle.com/#!3/7c75b/4](http://sqlfiddle.com/#!3/7c75b/4)。但查詢是不同的,但當我試圖粘貼你的查詢它不工作.. – AKIWEB 2012-07-14 03:07:40

+0

現在它工作後編輯 – AKIWEB 2012-07-14 03:08:55

+0

@ZaneBien - 感謝您修復我愚蠢的別名錯誤:-) – dbenham 2012-07-14 03:10:39

0
select isnull(ID1, ID2) ID, isnull(Table2.count2, 0) count2, isnull(Table1.count1, 0) count1 
from Table2 full outer join Table1 
on Table2.ID2 = Table1.ID1 
+0

鏈接中沒有任何表示一個問題完全外部連接是必需的。 – dbenham 2012-07-14 03:06:45

0

試試這個

Select T1.ID,T1.Count1 As Count2,(Case When T2.ID1 IS NULL THEN 0 ELSE T2.Count1) 
As Count1 From 
Tabl1 AS T1 LEFT OUTER JOIN Table2 AS T2 ON 
T1.ID1=T2.ID1 
+0

正確的概念,但表和列的名稱是混亂的。 (這個問題與table1之前列出的table2有點混淆) – dbenham 2012-07-14 03:12:10