根据另一张表中的值更新一张表

Posted

技术标签:

【中文标题】根据另一张表中的值更新一张表【英文标题】:UPDATE one table based on values in another table 【发布时间】:2013-11-08 20:05:49 【问题描述】:

我有两个表,表 1 有三个字段 (a1,a2,a3),表 2 有三个字段 (b1,b2,b3) 我想在 a1=b1 时根据表二更新表一。这是 Microsoft Access 中的文章,但我想在 Microsoft Access 项目 Sql server 2005 中作为后端。

UPDATE  t1
SET  a1 = t2.b1, a2 = t2.b2, a3 = t2.b3
where a1=b1

【问题讨论】:

【参考方案1】:

INNER JOIN 表格。那么您就不需要SET t1.a1=t2.b1,因为根据连接条件,它们已经相等。所以只需SET 其他两个字段值...

UPDATE t1 INNER JOIN t2
ON t1.a1=t2.b1
SET t1.a2 = t2.b2, t1.a3 = t2.b3

请注意,此建议是 Access SQL,无论 t1t2 是本机 Access 表、指向 SQL Server 表的链接还是这两种类型的混合,都应该在 MS Access 中工作。

【讨论】:

【参考方案2】:

为 SQL Server 尝试以下操作:

UPDATE t1 
   SET a1 = t2.b1, a2 = t2.b2, a3 = t2.b3
FROM t1
   INNER JOIN t2 ON t1.a1 = t2.b1

【讨论】:

create PROCEDURE [dbo].[t122] AS BEGIN UPDATE t1 SET a2 = t2.b2, a3 = t2.b3,a1 = t2.b1 FROM t1 inner join t2 on t1.a1=t2 .b1 其中 a1 = t2.b1 结束

以上是关于根据另一张表中的值更新一张表的主要内容,如果未能解决你的问题,请参考以下文章

Netezza - 用另一张表中的最大数据更新一张表

Excel 一张工作表变动后,怎么自动更新另一张表中的数据

SQL 从多行的另一张表的余额中扣除一个表中的值

VBA循环使用另一张表中的数据更新图表中的系列

根据另一张表中的数据填写公式

循环遍历一张表中的列值并将另一列中的 COUNTIF 值粘贴到另一张表中