sql - 将一个表中的值更新到另一个表中

标签 sql oracle sql-update subquery inner-join

我有表 A、B 和 C。我需要从表 A 中的所有行中选择某些值,然后对于 A 中的每一行,我需要更新表 B 和表 C 中的值。

伪代码如下所示:

 SELECT A1, A2, A3, A4 FROM Table A 
           UPDATE Table B SET B2=A2, B3=A3, B4=A4 WHERE B1 = A1;
           UPDATE Table C SET C2=A2, C3=A3, C4=A4 WHERE C1 = A1;

我怎样才能实现这个目标?

最佳答案

在 Oracle 中,您将使用两个更新语句:

update b
    set (b2, b3, b4) = (select a2, a3, a4 from a where a.a1 = b.b1);

update c
    set (c2, c3, c4) = (select a2, a3, a4 from a where a.a1 = c.b1);

关于sql - 将一个表中的值更新到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65496776/

相关文章:

mysql - 如何找到一个日历年的员 worker 数?

mysql - 使用like语句后如何从SQL中获取数据

sql - 处理递归 cte 中的大量列

oracle - 重新安排 Oracle 作业

linux - sqlplus:加载共享库时出错:libsqlplus.so:无法打开共享对象文件:没有这样的文件或目录

mysql - 在一个查询 MYSQL 中插入和更新

sql - 如何选择该记录有多个条目的行?

sql - SQL Select 语句返回 boolean 值

postgresql - 使用唯一整数更新现有记录

MySQL:错误 1054 (42S22): 'where clause' 中的未知列