根据列在另一个表中的列更新表

时间:2019-03-15 18:36:20

标签: sql sql-server tsql

我有一个DesignGroup表,例如:

+---------------+------------+
| DesignGroupId | ProjectKey |
+---------------+------------+

和其他名为Design的表中,我在其中添加了DesignGroup ForeignKey:

+-----------+-------------------+
| DesignKey | DesignGroupId(FK) |
+-----------+-------------------+

我想要做的是根据他的DesignGroupIdDesign表上插入ProjectKey,但是为了知道每个设计的ProjectKey。我需要查询其他表:

SELECT  PD.ProjectKey from Design AS D 
INNER JOIN ProjectDesign AS PD ON D.DesignKey = PD.DesignKey

如何执行此更新?

1 个答案:

答案 0 :(得分:1)

如果我的理解正确,您似乎想通过update的多个表进行联接:

update d
    set DesignGroupId = dg.DesignGroupId
    from design d join
         ProjectDesign pd
         on d.DesignKey = pd.DesignKey join
         designgroup dg
         on dg.ProjectKey = pd.ProjectKey;