2014-04-10 2 views
0

ID 열이있는 테이블 A와 다른 테이블이 있습니다. 또한 테이블 A와 같은 ID 열과 국가라는 또 다른 열이있는 테이블 B도 있습니다. 그러나 테이블 A의 모든 ID가 테이블 B에있는 것은 아닙니다. 기본적으로 두 테이블의 ID에 해당하는 테이블 B의 국가를 삽입하는 countries2라는 테이블 A에 새 열을 삽입하려고합니다. A의 특정 ID가 B에 없으면 항상 VARCHAR 'none'을 countries2에 넣습니다. --- 'foo1은'
3 --- '에서는 foo2'특정 값을 삽입하지 않으면 조건에 따라 다른 테이블의 데이터를 삽입하십시오. PSQL

를 국가
1-
ID : 그래서 예를 들어 표 A는 1, 2, 3, 4, 테이블 B가처럼 보이는 식별자가있는 경우

나는 테이블 A가되고 싶어 뭔가 같은 :
ID - COUNTRY2 - 다른 원본 데이터 테이블에서
1 --- 'foo1은'--...
2 --- '없음'-. ..
3 --- 'foo2'--...
4 --- 'none'--...

+0

귀하의 케 같은 수 있습니다 스톤은 아주 혼란 ​​스럽다. 젠장! – Achilles

+0

혼란스러운 질문은 아니지만 대답은 극단적으로 단순하지 않을 수 있습니다 ... 전체적으로 SQL로 수행되기를 원하십니까? – shieldstroy

답변

1

먼저 여분의 열 varchar 형의 (즉, yourNewColumn)를 추가 할 TableA의를 변경해야/VARCHAR2 것은

그럼 당신은 TableA의를 업데이트하려면 다음과 같은 것을 사용할 수 있습니다

ALTER TABLE TableA ADD COLUMN yourNewColumn varchar(10); 

뭔가를하려고 열을 추가합니다

UPDATE TableA 
SET yourNewColumn = ISNULL(TableB.countries, 'none') 
FROM TableA 
LEFT JOIN TableB ON TableA.id = TableB.id 

의 PostgreSQL의 ISNULL 함수는

SET yourNewColumn = CASE WHEN TableB.countries IS NULL THEN 'none' ELSE TableB.countries END 
관련 문제