在下面的语句中,我试图根据从子查询SELECT语句检索的数据来规范化表'回复'中的LocationID。基本上,Replies表中的LocationID不在MasterList中,我想用'1234'的位置替换那些出现。我认为下面的陈述可行,但事实并非如此。当我尝试运行它时,它会在2010年5月5日之后更新回复表中的所有LocationID。
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
答案 0 :(得分:2)
您可以使用not exists子句查找masterList上不存在的位置
update replies
set locationid='1234'
where not exists (
select 1 from masterlist as ml
where
ml.locationid=replies.locationid
)
and CreateDate >= '5/5/2010'