SQL Update Join 更新连接
一、SQL Update Join 更新连接 语句
SQL UPDATE JOIN意味着我们将使用另一个表和连接条件更新一个表。
让我们以客户表为例。我更新了包含来自另一个源系统的最新客户详细信息的客户表。我想用最新数据更新客户表。在这种情况下,我将使用客户 ID 上的连接来执行目标表和源表之间的连接。
让我们看看带有 JOIN 语句的 SQL UPDATE 查询的语法。
UPDATE customer_table
INNER JOIN
Customer_table
ON customer_table.rel_cust_name = customer_table.cust_id
SET customer_table.rel_cust_name = customer_table.cust_name
二、如何在多个表中使用带有 JOIN 的 SQL UPDATE 语句
我们来看两张表,表 1 和表 2。
表1:
CREATE TABLE table1 (column1 INT, column2 INT, column3 VARCHAR (100))
INSERT INTO table1 (col1, col2, col3)
SELECT 1, 11, 'FIRST'
UNION ALL
SELECT 11,12, 'SECOND'
UNION ALL
SELECT 21, 13, 'THIRD'
UNION ALL
SELECT 31, 14, 'FOURTH'
表2:
CREATE TABLE table2 (column1 INT, column2 INT, column3 VARCHAR (100))
INSERT INTO table2 (col1, col2, col3)
SELECT 1, 21, 'TWO-ONE'
UNION ALL
SELECT 11, 22, 'TWO-TWO'
UNION ALL
SELECT 21, 23, 'TWO-THREE'
UNION ALL
SELECT 31, 24, 'TWO-FOUR'
检测这两种表的内容:
SELECT * FROM table_1
SELECT * FROM table_2
Table1的数据
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 11 | First |
2 | 11 | 12 | Second |
3 | 21 | 13 | Third |
4 | 31 | 14 | Fourth |
Table2的数据
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 21 | Two-One |
2 | 11 | 22 | Two-Two |
3 | 21 | 23 | Two-Three |
4 | 31 | 24 | Two-Four |
我们的要求是表 2 有两行,其中 Col 1 为 21 和 31。我们希望将表 2 中的值更新到表 1 中 Col 1 为 21 和 31 的行。
我们还想只更新 Col 2 和 Col 3 的值。
最简单常用的方法是在update语句中使用join子句,在update语句中使用多个表。
UPDATE table 1
SET Col 2 = t2.Col2,
Col 3 = t2.Col3
FROM table1 t1
INNER JOIN table 2 t2 ON t1.Col1 = t2.col1
WHERE t1.Col1 IN (21,31)
查看两种表的数据如下:
Table1:
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 11 | First |
2 | 11 | 12 | Second |
3 | 21 | 23 | Two-Three |
4 | 31 | 24 | Two-Four |
Table2:
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 21 | First |
2 | 11 | 22 | Second |
3 | 21 | 23 | Two-Three |
4 | 31 | 24 | Two-Four |
在这里我们可以看到在 update 语句中使用了 join 子句。我们通过使用 join 子句合并了两个表。
热门文章
优秀文章