2011-06-13 3 views
1

에는 쿼리의 결과를 가져 와서 그 결과를 특정 열의 다른 테이블에 복사하는 방법이 있습니다. 여기 테이블 A에서 특정 값을 가져 와서 그 결과를 테이블 B에 복사 하시겠습니까?

내가 지금까지

//get CONTACT_ID from RETAILER_ID and create some loop that goes through all CONTACT_ID values and execute the queries below: 

select CSN from CONTACTS where CONTACT_ID = '103309'; 

위의 쿼리가 연락처 테이블에서 CSN 값을 얻을 수있을 것입니다 그리고 난 다음 어떤 실행할 :

update RETAILER_CONTACTS set columnB = new CSN where CONTACTS_ID='103309'; 

나는이 작업을 수행해야합니다을 RETAILER_CONTACTS의 모든 단일 레코드 따라서 아래의 쿼리에서 찾을 수있는 각 CONTACTS_ID를 통과하는 일부 루프에서 위의 코드를 실행해야하는 이유는 무엇입니까?

CONTACT_I RETAILER_ID의 D; 사전에

덕분에

+1

: 난 당신이 뭔가에 의해 원하는 것을 할 수 있다고 생각합니다. [데이터베이스 정규화] (http://en.wikipedia.org/wiki/Database_normalization)를 찾아보십시오. 특히 이상을 업데이트하십시오. –

+0

그들은 색인 생성을 위해 RETAILER_CONTACTS에있는 CSN 값을 필요로합니다. – jonney

답변

0

내가 당신이 원하는 것을 이해하지만, 대부분의 시간을 한 확실하지, SQL에서 루프를 사용하는 욕망은 문제의 표시이다. 다음은 모든 RETAILER_CONTACTS``의 열 안, CSN`가 논리적으로`CONTACT`의 한 속성입니다`경우

update RETAILER_CONTACTS 
set columnB = CSN 
from RETAILER_CONTACTS RC, 
    CONTACTS C, 
    RETAILERS R 
where C.CONTACT_ID = '103309' 
and C.CONTACT_ID = RC.CONTACT_ID 
and C.RETAILER_ID = RC.RETAILER_ID 
+0

흥미로운 것 같습니다. 메신저는 연락처라는 두 테이블과 RETAILER_CONTACTS라는 두 테이블 만 처리합니다. 두 테이블 모두 CONTACTS_ID가 있고 RETAILER_CONTACTS에 CSN 열이 있으며 RETAILER_CONTACTS 테이블의 CONTACTS_ID에서 columnB로 CSN을 복사하려고합니다. – jonney

+0

이 작업은 가능합니까? – jonney

+0

업데이트 RETAILER_CONTACTS RC.columnB = C.CSN CONTACTS C, RETAILER_CONTACTS RC 에서 RC.CONTACTS_ID = C.CONTACTS_ID; – jonney

관련 문제