如何使用基于SQL Server中更多表的Update Select语句?

时间:2011-06-03 11:06:01

标签: sql-server sql-server-2005

我有三个表,如TableA,TableB和TableC。我想从TableC中的列值更新TableA中的一列。但是没有与TableA和TableC直接关系。但TableB与表A和C都有关系。我如何更新?表格的结构如下:

  TableA:                  TableB:               TableC:
 ----------               -----------           ----------
  ItemID                   ID                     ID
  Name                     ItemDetailID           D1
  Quantity                 TotalQty               D2
  Rate                     TotalAmount            D3 
  ItemDetailID             TotalWeight            Quantity

这里我想用TableC列值“Quantity”更新TableA列“Quantity”。 我使用两个表使用Update select语句。但不是这样的。怎么做?请提出建议......

2 个答案:

答案 0 :(得分:3)

类似的东西:

Update a
set a.Quantity = c.Quantity
from TableA a
join TableB b on b.ItemDetailId = a.ItemDetailId
join TableC c on c.ID = b.ID

答案 1 :(得分:2)

Update a
Set a.Quantity = c.Quantity
From TableA a
Inner Join TableB b on b.ItemDetailId = a.ItemDetailId
Inner Join TableC c on c.ID = b.ID