表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中的行重复值(ID 1和值2)。然而ID 4的2行是因为ID 2的表2中的两个值都不具有重复性。
所以这是一个左连接,我只想要表2中的值,其中该值不重复且ID与表1中的ID匹配。
答案 0 :(得分:2)
在表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