You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

对比两张表指定列值,按条件更新表A数据的技术需求

需求与解决方案:基于两表Marks列的条件更新

需求说明

  • 对比表A和表B中Name匹配行的Marks列值
  • 当表A的Marks与表B对应行的Marks不相等时,更新表A的Marks为 A.Marks - B.Marks
  • 若两行Marks值相等,则保持表A的Marks不变

原始表数据

表A

Name Marks
Amit   23
Rahul  12
Gaur   10

表B

Name Marks
Amit   34
Rahul  10
Gaur   10

实现方案(SQL语句)

MySQL 写法

使用UPDATE JOIN语法关联两表并执行条件更新:

UPDATE TableA A
JOIN TableB B ON A.Name = B.Name
SET A.Marks = A.Marks - B.Marks
WHERE A.Marks != B.Marks;

SQL Server 写法

通过FROM子句关联表进行更新:

UPDATE A
SET A.Marks = A.Marks - B.Marks
FROM TableA A
INNER JOIN TableB B ON A.Name = B.Name
WHERE A.Marks != B.Marks;

执行后结果

更新完成后,表A的数据如下:

Name Marks
Amit   -11
Rahul   2
Gaur    10

内容的提问来源于stack exchange,提问作者user22094638

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:13:30