2010-07-27 3 views
2

아직 SQL에서는 좋지 않지만 배우고 있습니다.다른 열의 두 열을 테이블에서 업데이트

그래서 내가 3 개 테이블이 있습니다

tblOne (ID, 유형) tblTemp1 (이름, 유형) tblTemp2 (ID, 이름) 기본적으로

를, 내가 tblOne를 업데이트 할 곳은 어디 ' Id '는 tblTemp2에서 일치하지만 그보다는'Name '이 일치하는 tblTemp1에서'Type '을 가져옵니다.

아무도 도와 줄 수 있습니까?

답변

2

업데이트 문에서 조인을 사용하는 것이 좋습니다.

UPDATE tblOne 
SET tblOne.Type = tblTemp1.Type 
FROM tblTemp2 
INNER JOIN tblTemp1 ON tblTemp1.Name = tblTemp2.Name 
WHERE tblOne.Id = tblTemp2.Id 

http://msdn.microsoft.com/en-us/library/aa260662%28SQL.80%29.aspx

+1

인가에 대한이 부분을 추가 할 경우에만 갱신 조건을 만족해야합니다 이 구문은 정확합니까? 나는 세트 이전에 JOIN이 수행 된 것을 본 적이 없습니까? (구멍을 뚫지 않고 그냥 전에 본적이 없습니다) –

+0

그래, 할 수 있니? – Scott

+0

네 말이 맞아. 이것은 MySQL 고유의 구문입니다. SQL Server 구문을 사용하기 위해 게시물을 편집했습니다. –

0
UPDATE tblOne 
SET 
tblOne.Type = tblTemp1.Type 
WHERE 
tblOne.Id = tblTemp2.Id 
AND 
tblTemp1.Name = tblTemp2.Name; 
0
UPDATE TBLONE 
SET TBLONE.TYPE = (SELECT TBLTEMP1.TYPE 
         FROM TBLTEMP1 
          INNER JOIN TBLTEMP2 
            ON TBLTEMP1.NAME = TBLTEMP2.NAME 
         WHERE TBLONE.ID = TBLTEMP2.ID); 

빨리 감기 우리는
그런 다음 문 및 where 절은 선택 조건이 //

관련 문제