2013-07-03 4 views
0

큰 질문이 있습니다.두 개의 다른 테이블에서 ID를 기반으로 값을 삽입하십시오.

일부 데이터를 기존 테이블에서 새 테이블로 마이그레이션하려고합니다. 나는 다음을 수행하는 방법을 파악하는 문제에 봉착 : 주소 테이블에서

두 개의 열이 있습니다 :

AddressTable 
--------------------------------------------- 
StateCode(nvarchar) and CountryCode(nvarchar) 

모두가 국가와 국가 코드에 대한 두 문자 코드를 누릅니다.

지금 새 테이블에 우리는 난 할 노력하고있어하는 것은 국가와 국가에

StateTable has (Id,(FK)IdCountry,Name,Code) 
CountryTable has (Id,Name,Code) 

을 기반으로 두 개의 테이블 국가와 나라에 해당하는 두 개의 외래 키

NewAddressTable 
--------------------- 
StateId and CountryId 

했다 주소 테이블의 코드 상태 및 코드를 기반으로 새 테이블을 이전 테이블의 값으로 바꾸려면 어떻게 추가 할 수 있습니까?

예 :

AddressTable 
------------- 
City  StateCode PostalCode CountryCode 
North Haven CT   06473  US 

NewAddressTable 
--------------- 
IdCountry IdState 
236   8 

CountryTable 
--------------- 
Id Name   Code 
236 UNITED STATES US 

StateTable 
-------------- 
Id IdCountry Name   Code 
8 236   CONNECTICUT CT 

감사합니다.

+0

이전 주소록도 새 테이블에서 국가 ID를 가져야합니다. 그렇다면 새로운 분야를 창출하거나 statecode와 countrycode에 넣으십시오. – Edper

답변

1

이와 비슷한 기능이 작동합니다.

insert into newtable 
(idCountry, idState) 
select country.id, state.id 
from oldtable join country on oldtable.CountryCode = Country.Code 
join state on oldtable.stateCode = state.code 
+0

그게 다야! 굉장한 사람 감사합니다. – Code4Beer

관련 문제