2013-04-17 42 views
2

我對將一個表合併到另一個表有點困惑。我的兩個表看起來像這樣:PostgresSQL合併表

Table A           Table B 
id | name | likes | email | username   id | name | email | username 
1 | joe | 3 | null | null    1 | ben | [email protected] | user 


Result: Table A 
id | name | likes | email | username 
1 | joe | 3  | null | null 
2 | ben | null | [email protected] | user 

我的問題是,我不希望覆蓋那些在表A.這是一個簡單的UNION的屬性?

回答

3

您只需執行INSERT INTO..SELECT聲明,

INSERT INTO TableA(id, name, likes, email, username) 
SELECT id, name, NULL AS likes, email, username 
FROM TableB 

它這是什麼副本從TableB所有記錄到TableA。但是,如果你想爲投影只記錄,然後進行簡單UNION會做得很好

SELECT id, name, likes, email, username FROM tableA 
UNION 
SELECT id, name, NULL AS likes, email, username FROM TableB 
+0

好吧,看起來像什麼,我試圖最初寫的,但到底是怎麼回事用'SELECT ID,名稱爲null。 ..'? – trev9065

+0

它爲'LIKES'設置'NULL'值。你也可以這樣做,'INSERT INTO TableA(id,name,email,username) SELECT id,name,email,username FROM TableB' –

+0

好吧,無論我不想插入什麼值,最初的'INSERT INTO'語句的列? – trev9065