2011-01-23 6 views
2

테이블에서 실행되는 쿼리가 있고 2 개의 필드가 추출됩니다. 나는 그것들을 가져 가고, UPDATE 문장을 사용하여 WHERE와 SET처럼 그들의 값을 사용하고 싶다.SQL에서 중첩 된 쿼리를 사용하여 업데이트하는 방법

select name, address from xxx..... 

내가 이름 & 주소를 가지고

+0

문제가 무엇인지 이해가 안됩니다 ... 좀 더 구체적인 예를 들어 줄 수 있습니까? –

+0

두 테이블 구조가 필요합니다. 두 테이블 모두와 관계가있는 필드의 이름은 무엇입니까 –

+0

테이블 구조 또는 그 것을 설명하는 것과 같은 것을 제공 할 필요성을 설명하십시오! – Harish

답변

8

줄이

update yyy 
set fullname=(name I pulled before) 
where address=(address I pulled before) 

감사를 수행 할 이것은

Update t 
Set t.yyyy = q.Name 
From TableToUpdate t 
Join AddressTable q on q.Address = t.Address 

이것을 시도 : 예를 들어

ssumes 그 주소 필드는 (당신이 합류하는) 당신이 업데이트 테이블에 액세스 할 수 있기 때문에

이 또한

Update TableToUpdate 
Set yyyy = q.Name 
From AddressTable q 
WHERE q.Address = TableToUpdate.Address 

쓸 수있는 업데이트 된 테이블의 주소 필드와 일대일 관계입니다 FROM/WHERE 절은 앨리어스 될 수 없다는 점을 제외하고는.

2

당신이 SQL 서버 (당신이 .... 지정하지 않은) 2005 또는 업을 공통 테이블 식 (CTE)를 사용할 수 있습니다 사용하는 경우 : 당신의 CTE 내부

;WITH UpdateData AS 
(
    SELECT 
      FullName, 
      Address 
    FROM 
      dbo.SomeTableYouUse 
    WHERE 
      (some critiera) 
) 
UPDATE dbo.yyy 
SET fullname = ud.FullName 
FROM UpdateData ud 
WHERE address = ud.Address 

당신 FullNameAddress을 결정하는 방법을 파악할 수 있으며 CTE는 다음 문장 (이 경우 UPDATE 문)에 대해서만 유효한 "인라인"보기의 일종입니다.

관련 문제