2011-08-08 6 views
1

두 개의 테이블이 있는데 한 테이블을 다른 테이블에서 업데이트하려고합니다. 두 가지 모두에 대해 정의 된 기본 키는 아래에 추가 된 다섯 개의 열의 조합입니다.기본 키 두 테이블을 비교하는 방법 (5 개 열의 조합)?

alter table custompricingnew 
add primary key (partNumberSKU(100), customerClass(100), customerName(100), svcType(100), svcDuration(100), durationPeriod(100)) 

업데이트 구문의 where 절을 작성하는 방법은 무엇입니까? 5 열을 따로 지정해야합니까?

UPDATE customPricingTest t1, customPricingTesttemp t2 
SET t1.customerId= t2.customerId, t1.customerNumber= t2.customerNumber, t1.custPartNumber=t2.custPartNumber 
WHERE t1.primaryKey = t2.primaryKey 

Nitesh

+1

예. 5 열 모두를 개별적으로 참여시켜야합니다. –

+0

그리고 5 개가 아니라 기본 키에 6 개의 열이 있습니다. :-) –

답변

2

당신이 할 수있는 USING 구문을 사용하는 조인을 사용하십시오.

UPDATE customPricingTest t1 INNER JOIN customPricingTesttemp t2 
    USING (partNumberSKU, customerClass, customerName, svcType, svcDuration, durationPeriod) 
SET t1.customerId  = t2.customerId, 
    t1.customerNumber = t2.customerNumber, 
    t1.custPartNumber = t2.custPartNumber; 

두 테이블에 같은 이름의 열이 있다고 가정하는 조인 구문이며 조인은 모든 테이블에 대해 동등 비교를 사용해야합니다.

괄호는 필수 항목입니다.

도 참조하십시오. JOIN syntax

+0

답변에 감사드립니다 !! ... 도움이되었습니다. – Nitesh

1

예! 5 열에 조인을 지정해야합니다.

0

사실이 6 열이 아닌 5

당신은 하나이 같은 6 개 컬럼에 가입 할 필요가 있습니다

WHERE t1.partNumberSKU = t2.partNumberSKU 
    AND t1.customerClass - t2.customerClass 
    ... 

또는 같은

:

WHERE (t1.partNumberSKU, t1.customerClass, ...) 
    = (t2.partNumberSKU, t2.customerClass, ...) 
관련 문제