在Postgresql中将列设置为Null并加入

时间:2017-03-16 23:28:55

标签: sql postgresql

所以我有两张桌子。一个表包含两列。第二个表包含一列。但是,第二个表中的列与第一个表的第一列的列名匹配:

Table 1:
a       b
hello | 6
world | 7

Table 2:
a
new
t1

我想加入这两个表来导致:

Table 3:
a         b
hello  | 6
world  | 7
new    | Null
t1     | Null

我已经研究过Cross Join和其他许多联接,但在这种情况下似乎都没有帮助。

2 个答案:

答案 0 :(得分:3)

SELECT a, b FROM table_1
UNION ALL
SELECT a, NULL::INTEGER FROM table_b
;

对于其他一些数据库,不需要像上面那样转换为整数。

答案 1 :(得分:0)

UNION ALL是正确的答案。如果您坚持使用JOIN,则可以执行:

select coalesce(t1.a, t2.a) as a, t1.b
from t1 full outer join
     t2
     on 1 = 0;