如何正确使用 MSSQL 中的 join 语句?

如何正确使用 MSSQL 中的 join 语句?

我对 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'

相关内容