使用带有更新 SQL 的子查询
Posted
技术标签:
【中文标题】使用带有更新 SQL 的子查询【英文标题】:Using subquery with update SQL 【发布时间】:2021-05-12 16:25:44 【问题描述】:我有表 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 来使用表 2 的 Amount 字段更新表 1 的 amount 字段,结果如下。
结果:
ID NAME CITY AMT
--------------------------------------------
1 sajani Bangalore 20
2 Prashanth Bangalore 10
3 Jayvin Bangalore 10
【问题讨论】:
【参考方案1】:一种方法是相关子查询:
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);
【讨论】:
如果我只想在不匹配的情况下更新记录怎么办 如果什么不匹配?也许你应该问一个新问题。以上是关于使用带有更新 SQL 的子查询的主要内容,如果未能解决你的问题,请参考以下文章