我有一个表 TABLE1 (父母表)和列
StaffID(PK)
名称
CategoryID(FK)
我还有另一个相关表 TABLE2 (相关表) 列
LeaveID(PK)
StaffId(FK)
起始日期
我想要做的是编写一个T-SQL查询来更新TABLE2中所有行的StartDate列,其中TABLE1中的CategoryID ='3'
TABLE2通过StaffID外键列
与TABLE1相关答案 0 :(得分:2)
UPDATE TABLE2 T2
SET T2.StartDate = '10/10/2010' // YOUR NEW DATE
INNER JOIN TABLE1 T1 ON T1.StaffID = T2.StaffID
WHERE T1.CategoryID = 3
答案 1 :(得分:2)
您可以在update语句中使用连接,但对于像这样的简单更新,我认为最明确的方法是使用子查询。它避免了关于哪个表正在更新的任何歧义,优化器可能会选择相同的查询计划。
update TABLE2
set StartDate = @SomeDate
where StaffId in (select StaffId from TABLE1
where CategoryID = 3)