2013-03-14 21 views
-1

表1:左加入其中右表具有計數= 1

ID  Values 
1  1 
2  2 
3  3 
4  4 

表2:

ID Values 
1  1 
1  2 
1  2 
2  4 
4  5 
4  6 

我需要的結果是:

ID Table 1 Values Table 2 Values 
1  1     1 
2  2     4 
3  3       *This is blank because Table 2 doesn't have ID 3 
4  4     5 
4  4     6 

注意的表2中的行被排除(值1和值2)。然而,ID 4的2行因爲表2中ID 4的值都沒有重複性。

所以這是一個左連接,我想只有當該值不重複的從表2中值和ID在表2中的ID從表1相匹配

+0

有什麼問題?目前尚不清楚爲什麼某些數據被排除在外。爲什麼沒有'1 1 2'排? – 2013-03-14 21:29:24

+0

AS聲明它們是重複值ID = 1 AND Value = 2 – user2140261 2013-03-14 21:30:29

+0

在我看來,像你上一個問題中的[demo](http://sqlfiddle.com/#!3/9c8b2/1)可以解決這個問題。 – Kermit 2013-03-14 21:31:53

回答

2

使用一個CTE,然後使用作爲您左側加入的右側:

WITH t2 AS (
    SELECT ID, Values FROM [Table 2] 
    GROUP BY ID, Values 
    HAVING COUNT(*) = 1 
) 
SELECT t1.ID, t1.Values [Table 1 Values], t2.Values [Table 2 Values] 
    FROM [Table 1] t1 
    LEFT JOIN t2 ON t1.ID = t2.ID