使用 SQL 使用另一个 Oracle 表的数据更新 Oracle 表
Oracle SQL 提供了使用一个表中的数据更新另一个表的有效方法。 这可以使用相关更新或替代语法来实现。
让我们用示例表格来说明:
<code class="language-sql">Table 1: id | name | description ----------------------- 1 | a | abc 2 | b | def 3 | c | adf</code>
<code class="language-sql">Table 2: id | name | description ----------------------- 1 | x | 123 2 | y | 345</code>
方法一:关联子查询更新
此方法使用相关子查询从 Table 2
中为 Table 1
中的每一行获取匹配数据:
<code class="language-sql">UPDATE table1 t1 SET (name, description) = (SELECT t2.name, t2.description FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( SELECT 1 FROM table2 t2 WHERE t1.id = t2.id );</code>
WHERE EXISTS
子句确保仅更新两个表中 ID 匹配的行。
方法 2:使用子查询的替代语法
此方法使用子查询来创建组合两个表的临时视图,然后更新此视图:
<code class="language-sql">UPDATE (SELECT t1.id, t1.name name1, t1.description desc1, t2.name name2, t2.description desc2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id) SET name1 = name2, desc1 = desc2;</code>
此方法利用 JOIN
来有效地组合表。 然后,更新会根据 name1
中的相应列(desc1
、Table 2
)修改所选列(name2
、desc2
)。 id
列作为连接键,确保 Table 1
的准确更新。
以上是如何使用 SQL 从另一个 Oracle 表中更新数据?的详细内容。更多信息请关注PHP中文网其他相关文章!