我调查的最相关问题是this,但遗憾的是我没有找到解决问题的方法。
我有两个表,两个都有类似的列。唯一的区别是一列缺少一些值。我想加入表格,以便对于一列中的缺失值,连接将显示缺失值。
我提供了一个例子,因为这可能令人困惑 -
table 1 table 2
ID count ID count
1 9 1 2
2 2 2 1
3 1
我希望结果是
table 3
ID count2 count1
1 2 9
2 1 2
3 NULL 1
但是,使用LEFT OUTER JOIN
我只能在没有id 3行的情况下实现表“table 3”,因为它在表2中没有任何表示。
你能解决我的问题吗?
答案 0 :(得分:2)
左连接适用于您的示例数据,我猜您想知道如果将ID为3的行移动到表2中该怎么做,以便您的查询将显示所有ID。要显示两个表中的所有行,请使用FULL OUTER JOIN
:
SELECT CASE WHEN t1.id IS NULL THEN t2.id ELSE t1.id END AS id,
t2.count as count2, t1.count as count1
FROM t1
FULL OUTER JOIN t2 ON t2.id = t1.id