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

使用含子查询的UPDATE SQL语句关联EMP1表更新EMP表的金额字段

问题说明

现有两张关系数据表,信息如下:

表1:EMP(目标更新表)

初始结构及数据:

ID   NAME             CITY             AMT        
       -------------------------------------------
        1   sajani           Bangalore        0          
        2   Prashanth        Bangalore        0          
        3   Jayvin           Bangalore        0     

表2:EMP1(数据源表)

结构及数据:

ID   NAME1            CITY1            AMT1    
 ---------------------------------------------
  1   Sajani           Bangalore        10      
  1   Sajani           Bangalore        10      
  2   Prashanth        Bangalore        10      
  3   Jayvin           Bangalore        10      

需求

两张表以ID作为公共关联键,编写UPDATE SQL语句,将EMP表的AMT字段更新为EMP1表中相同ID对应的所有AMT1的总和,最终预期结果如下:

ID   NAME             CITY             AMT        
       --------------------------------------------
        1   sajani           Bangalore        20          
        2   Prashanth        Bangalore        10          
        3   Jayvin           Bangalore        10    
实现代码

通用写法(兼容绝大多数数据库)

通过关联子查询逐行计算对应ID的AMT1总和赋值:

UPDATE EMP
SET AMT = (
    SELECT SUM(AMT1)
    FROM EMP1
    WHERE EMP1.ID = EMP.ID
);

高性能写法(支持JOIN更新的数据库可使用,如MySQL、PostgreSQL)

先对EMP1按ID聚合求和,再关联更新EMP表,数据量大时性能更优:

UPDATE EMP e
INNER JOIN (
    SELECT ID, SUM(AMT1) AS total_amt
    FROM EMP1
    GROUP BY ID
) emp1_total ON e.ID = emp1_total.ID
SET e.AMT = emp1_total.total_amt;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 16:54:06