2013-01-29 6 views
2

SELECT 문을 통해 반환 된 테이블의 결과를 업데이트하고 싶습니다.UPDATE (SELECT ...) SET ...

UPDATE (SELECT [a bunch of joins etc.]) SET thisRecord = 1 WHERE [blah blah] 

이 나를 위해 전혀 작동하지 않는 것 :

그래서 내가 원하는.

도움이 될 것입니다.

+1

SELECT 문의 결과를 업데이트 할 수 없습니다. 테이블 또는 테이블 집합을 업데이트해야합니다. 당신이 할 수있는 한 가지는 다음과 같이 INNER JOIN으로 UPDATE하는 것입니다 : UPDATE table1 INNER JOIN table2 ON table1.field1 = table2.field2 SET table1.field3 = 'some value'... 등등. – Anton

답변

2

시도 :

UPDATE Table1 
SET column1 = t2.Column 
FROM table1 t1 
JOIN (SELECT ... FROM ... lots of joins etc) t2 
ON t1.id = t2.otherid 
+0

I 전에이 해결책을 읽었습니다. 그러나, 내 'Table1'테이블 (선택 ...) 물건을 원한다. –

+1

편집 ... 이보다 더 좋아? –

+0

고마워 폴 .. 그게 내가 원하는거야. –

1

documentation에 모두 나와 있습니다. 당신이 생각하는 것처럼 당신은 할 수 없습니다. 당신이 할 수있는 무엇, 그러나, 번역하는 것입니다 업데이트 할 수있는 테이블에 적용되는 조건을 선택

SELECT [a bunch of joins etc.] 

내부.

2

그냥 할 수는 :

나는 당신의 질문을 이해하면
UPDATE your table name SET thisRecord = 1 WHERE your_criteria = (SELECT [a bunch of joins etc.]) 

, 이것은 당신이 원하는 무슨이다.

건배