SQL Update一个表,其中包含另一个表的值

时间:2013-04-04 04:45:49

标签: sql-server tsql

我有以下SQL语句 -

SELECT e.*, i.CaseNo, c.Claimant, c.Defendant, c.ClientID
FROM tblExpenses AS e
INNER JOIN tblInvoices AS i ON e.InvNo = i.InvNo
INNER JOIN tblCases AS c ON i.CaseNo = c.CaseNo

演示了三个表之间的联系。

tblInvoices有一个主键[InvNo],它也是tblExpenses中的外键,从而将每笔费用与相关发票相关联。

tblCases有一个主键[CaseNo],它也是tblInvoices中的外键,从而将每张发票与特定案例相关联。

最后,tblCases中的每个案例都有一个名为[ClientID]的列,用于标识发票已发送到的客户。

现在,tblExpenses也有一个外键[ClientID],但目前该列未填充。我想要做的是,使用上面的链接填充[ClientID]中的tblExpenses[ClientID]来自tblCases,通过前面提到的链接。

但是我不清楚如何重写我的SELECT查询,以便在[ClientID]中执行tblExpenses列的这一群体。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您已经有足够的选择查询来获取所需信息。您只需将其转换为更新查询即可。

UPDATE e SET e.ClientID=c.ClientID
FROM tblExpenses AS e
INNER JOIN tblInvoices AS i ON e.InvNo = i.InvNo
INNER JOIN tblCases AS c ON i.CaseNo = c.CaseNo