SQL 脚本:使用另一个以 ID 为轴的表更新列

Posted

技术标签:

【中文标题】SQL 脚本:使用另一个以 ID 为轴的表更新列【英文标题】:SQL Script: Updating a column with another table pivoting on an ID 【发布时间】:2014-11-25 12:22:38 【问题描述】:

我有两个 SQL Server 表:ORDERSDELIVERIES

我想用来自DELIVERIES 的值更新ORDERS 表。 ORDERS PK (OrderID) 对两个表都是通用的。另外,我想将操作限制为特定的CustomerID(在ORDERS 内)。

ORDERS表:

OrderID | AccountID | AnalysisField1

DELIVERIES表:

DeliveryID | OrderID | AddressName

我想用来自DELIVERIES.AddressName(由OrderID链接)的值更新ORDERS.AnalysisField1,但仅限于ORDERS.AccountID = '12345'

请帮忙。杰米

【问题讨论】:

【参考方案1】:

然后尝试使用这样的东西:

UPDATE dbo.Orders
SET AnalysisField1 = d.Addressname
FROM dbo.Deliveries d
WHERE
    d.OrderID = dbo.Orders.OrderID
    AND dbo.Orders.AccountID = '12345' 

如果您的 AccountID 列是 numerical 类型(ID 后缀会建议),那么您应该在值周围加上不必要的单引号在WHERE 子句中:

    AND dbo.Orders.AccountID = 12345 

【讨论】:

以上是关于SQL 脚本:使用另一个以 ID 为轴的表更新列的主要内容,如果未能解决你的问题,请参考以下文章

如何在使用触发器的 SQL 插入后更新另一个表

oracle的表更新问题

对卡塔兰数的理解

DATA_CONSISTENCY_CHECK 在我的表中打开。但是临时表仍然插入另一行以进行相同的数据更新。如何在 T-SQL 中进行限制?

unity中的欧拉角

SQL查询以查找ID不在另一个表中的记录