2010-12-10 11 views
0

에서 테이블 업데이트 아래 문에서 하위 쿼리 SELECT 문에서 검색 한 데이터를 기반으로 'Replies'테이블에서 위치 ID를 정규화하려고합니다. 기본적으로, MasterList에없는 Reply 테이블의 위치 ID가 있는데, 그 발생을 '1234'의 위치로 바꾸고 싶습니다. 아래의 진술이 효과가있을 것이라고 생각했지만 그렇지 않습니다. 나는 그것을 실행하려고하면, 그것은 2010 년하위 쿼리

UPDATE Replies 
SET Replies.LocationID = '1234' 
FROM (SELECT lml.LocationID FROM Replies sfs LEFT JOIN MasterList lml ON lml.LocationID=sfs.LocationID WHERE sfs.CreateDate >= '5/5/2010') AS rs 
WHERE rs.LocationID is null 

답변

2

당신은하지

update replies 
set locationid='1234' 
where not exists (
select 1 from masterlist as ml 
where 
    ml.locationid=replies.locationid 
) 
and CreateDate >= '5/5/2010' 
로 masterList에 존재하는 않는 위치를 찾을 수없는 존재 절을 사용할 수 있습니다, 5 월 5 일 이후에 답글 테이블에 모든 LocationID 년대를 업데이트
+0

감사합니다. 완벽하게 작동했습니다. 대부분의 경우, 나는 'SELECT 1'의 요점을 모른다는 것을 제외하고는 어떤 일이 벌어지고 있는지 이해합니다. 이걸 처음 봤어. – ploosh