📅  最后修改于: 2023-12-03 15:06:34.270000             🧑  作者: Mango
有时候我们需要从另一个表中提取数据来更新我们的目标表,这时候就需要使用 SQL 语句来实现。Oracle 提供了方便的功能来实现从另一个表更新表的操作。下面我们来介绍如何使用 SQL 语句从另一个表更新表的操作。
更新语句的基本语法如下:
UPDATE table1 SET column1 = (SELECT column2 FROM table2 WHERE condition) WHERE condition;
其中:
table1
:要更新的目标表。column1
:要更新的目标表中的列。column2
:要从另一个表中提取的列。table2
:提取数据的源表。condition
:更新数据的条件。下面我们通过一个实际的示例来演示从另一个表更新表的操作。假设我们有两张表,一张是 CUSTOMERS
表,另一张是 ORDERS
表。我们需要将 ORDERS
表中的 Customer_ID
列更新为 CUSTOMERS
表中对应的 Customer_ID
值。我们可以使用以下 SQL 语句来实现:
UPDATE ORDERS
SET Customer_ID = (SELECT Customer_ID FROM CUSTOMERS
WHERE CUSTOMERS.Customer_Name = ORDERS.Customer_Name)
WHERE EXISTS (SELECT 1 FROM CUSTOMERS WHERE CUSTOMERS.Customer_Name = ORDERS.Customer_Name);
以上 SQL 语句会在 ORDERS
表中对应的 Customer_Name
项值出现在 CUSTOMERS
表中时,将 Customer_ID
值替换为 CUSTOMERS
表中的相应值。