2017-03-16 27 views
0

所以我有两个表。一张桌子包含两列。第二个表格包含一列。然而,在第二个表中的列匹配的第一个表格的第一列的列名:将列设置为空并加入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 

我已经看过成十字加入和许多其他联盟,但他们似乎没有在这种情况下帮助。

回答

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

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

0

UNION ALL是正确答案。如果您坚持使用JOIN,您可能做:

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