使用带更新的子查询 SQL

Using subquery with update SQL

我有 Table 1 : EMP 如下

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

Table 2: EMP1

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

ID 是 Key,在两个文件中都是通用的。我想要一个 Update SQL 来使用 table 2 的 Amount 字段更新 Table 1 的 amount 字段,结果如下。

结果:

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

一种方法是相关子查询:

update emp
    set amt = (select sum(e1.amt) from emp1 e1 where e1.id = emp.id);

您可以使用以下方法检查值是否匹配:

update emp
    set amt = (select sum(e1.amt) from emp1 e1 where e1.id = emp.id);
    where amt <> (select sum(e1.amt) from emp1 e1 where e1.id = emp.id);