2010-07-24 4 views
0

두 개의 테이블이 있습니다. 하나는 국가라고하고 다른 하나는 국가라고합니다. 국가에는 국가와 주 모두가 있지만 국가에는 ISO가 없습니다. country 테이블에는 ISO가있는 국가 이름이 있지만 상태는 없습니다. 국가 테이블에서 새 ISO 열을 업데이트하고 국가 테이블 (즉, 한 테이블에서 다른 테이블로 ISO를 이동)을 기반으로 채우는 삽입 선택을 수행하려고합니다.INSERT ... SELECT, WHERE

여기에 내가 가진 무엇 : 모든이가 한

INSERT countries (country_iso) SELECT country.iso FROM countries,country WHERE countries.name = country.printable_name 

은 국가 테이블의 끝에서 ISO의를 넣어했다. WHERE countries.name = country.printable_name (두 개의 일치하는 열)을 사용하지 않았습니다.

내가 잘못하고있는 아이디어가 있습니까?

감사합니다.

답변

2

INSERT는 새 행을 만듭니다. 기존 행을 대신 업데이트하려는 것 같습니다. 업데이트가 기존 행을 수정하면서

UPDATE countries set country_iso = country.iso 
FROM countries INNER JOIN country on countries.name = country.printable_name 

인서트가 새 행을 작성합니다

+0

롤 .... 대만족입니다, 감사합니다! – dzm

0

당신은하지 삽입, 업데이트를 실행해야합니다.

0

대해 어떻게 :

UPDATE countries,country SET countries.country_iso=country.iso WHERE countries.name=country.printable_name