2012-07-16 5 views
7

업데이트 문 내에 세 개의 테이블을 조인하려하지만 지금까지 실패했습니다. 나는이 쿼리는 두 개의 테이블을 조인 작동 알고 업데이트 문 내에서 여러 테이블 조인

update table 1 
set x = X * Y 
from table 1 as t1 join table 2 as t2 join table3 as t3 
on t1.column1 = t2.column1 and t2.cloumn2 = t3.column1 

가 작동하지 않습니다 :

update table 1 
set x = X * Y 
from table 1 as t1 join table 2 as t2 on t1.column1 = t2.column1 

하지만, 내 경우에는 내가 그렇게 세 개의 테이블에 가입해야합니다. 또한 다음 쿼리를 시도했습니다.

update table 1 
set x = X * Y 
from table 1, table 2, table 3 
where column1 = column2 and column2= column3 

이 작업을 수행하는 방법을 알고있는 사람이 있습니까?

+1

어떤 테이블 Y에서 온 않습니다

그래서 여기 y의 출처가 완전히 자격을 갱신해야하지만, 내 제안인가? –

답변

14

table, table, table 구문을 사용하고 싶지는 않습니다. here's why. 중간 코드 샘플의 경우 조인 구문은 UPDATE의 경우와 거의 동일한 규칙 (SELECT)을 따릅니다. JOIN t2 JOIN t3 ON ...은 유효하지 않지만 JOIN t2 ON ... JOIN t3 ON은 유효합니다.

UPDATE t1 
    SET x = x * y -- should either be t2.y or t3.y, not just y 
    FROM dbo.table1 AS t1 
    INNER JOIN table2 AS t2 
    ON t1.column1 = t2.column1 
    INNER JOIN table3 AS t3 
    ON t2.column2 = t3.column1; 
+0

감사합니다, 이것은 나를 위해 그것을했다. – Rick