使用 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中文網其他相關文章!