我对 SQL 还很陌生,我已经阅读了一些有关连接的内容,但找不到答案。我在这里描述了我的场景:
我想将 Table1 中的名字更新为 Temp1,其中 Table2 中匹配 ID 的 CreateTS 小于 08.02.2014
为此我需要一个连接但无法解决。欢迎任何提示。
update Table1
set Firstname = 'Temp1'
where Firstame = 'xxx'
join Table
and CreateTS < '2014-02-08 15:00:00.000'
答案1
尝试:
update Table1 t1
set t1.Firstname = 'Temp1'
inner join Table2 t2 on
t1.Id = t2.Id -- Whatever your PK and FK are here
where t1.Firstame = 'xxx'
and t2.CreateTS < '2014-02-08 15:00:00.000'
答案2
以下是答案。为了突出变化,我插入了两个 FirstName 作为“not_updated”。请参阅SQL_Fiddle
update Table1
join Table2 on Table1.id = Table2.id
set Table1.FirstName = 'Temp1'
where Table2.CreateTS < '2014-02-08 15:00:00.000';
我希望这有帮助。
答案3
我不会为此使用 join。请尝试:
UPDATE Table1,Table2
SET Table1.FirstName = 'Temp1'
WHERE Table1.FirstName = 'xxx' AND Table1.ID = Table2.ID AND Table2.CreateTS < '2014-02-08 15:00:00.000'