【问题标题】:How to use Update Select statement based on more tables in SQL Server?如何在 SQL Server 中使用基于更多表的 Update Select 语句?
【发布时间】:2011-06-03 11:06:00
【问题描述】:

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

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

这里我想用 TableC 列值“数量”更新 TableA 列“数量”。 我使用两个表使用更新选择语句。但不是这样。怎么做?请给建议...

【问题讨论】:

  • 当您说“但是 TableB 与表 A 和 C 都有关系”时,字段名称是什么?
  • 没有。 ItemId 和 ID 不同。
  • 如何在此处也为您的表发布 SQL 语句。这将有助于人们在最后立即创建表格,并在此处发布答案之前测试他们的想法。
  • @Ozair Kafray,你明白这个问题了吗?我不清楚,尤其是黑白关系表,请查看我从 OP 那里得到的评论。
  • @SQL: 不,我假设AB 相关,ItemDetailIDBC 相关,ID

标签: sql-server sql-server-2005


【解决方案1】:

类似:

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

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2013-02-11
      • 1970-01-01
      • 2021-12-05
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多