2013-04-17 3 views
2

하나의 테이블을 다른 테이블로 병합하는 것에 대해 약간 혼란 스럽습니다. 내 두 개의 테이블이 너무과 같습니다PostgresSQL combine tables

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 

내 문제는 내가이 UNION 간단 표 A에있는 속성 덮어 쓰기를 원하지 않을 것입니다? 그것은 무엇을

답변

3

당신은 단지 INSERT INTO..SELECT 문을 실행할 수

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

은 복사합니다 TableATableB에서 모든 레코드입니다. 당신은 프로젝션에 대한 기록을 원한다면 단지, 다음 간단한 UNION은 잘 할 것입니다 내가 원래 쓰기를 시도하는 내용을 좋아 보이지만 좋아

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

은'SELECT ID, 이름 NULL AS에 무슨 일이 일어나고 있는지. ..'? – trev9065

+0

'LIKES'에 대해 'NULL'값을 설정합니다. SELECT ID, 이름, 전자 메일, 사용자 이름 FROM TableB' –

+0

좋아요. 삽입하고 싶지 않은 값은 무엇이든간에 나는 그들을 밖으로 내버려 둘 수 있습니다. 초기 INSERT INTO 문장의 컬럼? – trev9065