SQL UPDATE连接方式,我们将使用另一个表更新一个表,连接条件。
让我们以客户表的一个例子。我已经更新,其中包含从另一个源系统最新的客户详细信息的客户表。我想更新客户表最新数据。在这种情况下,我将执行目标表,并使用加入的客户ID源表之间的连接。
让我们来看看SQL UPDATE查询与JOIN语句的语法。
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
如何使用多个表中的SQL UPDATE语句与JOIN
让我们两个表,表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
西1 | 西2 | 西3 | |
---|---|---|---|
1 | 1 | 11 | First |
2 | 11 | 12 | Second |
3 | 21 | 13 | 第三 |
4 | 31 | 14 | Fourth |
西1 | 西2 | 西3 | |
---|---|---|---|
1 | 1 | 21 | Two-One |
2 | 11 | 22 | Two-Two |
3 | 21 | 23 | 二三 |
4 | 31 | 24 | Two-Four |
我们也想更新西2,只有西3的值。
最简单和常用的方法是使用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)
检查表的内容
选择从表1
选择从表2
西1 | 西2 | 西3 | |
---|---|---|---|
1 | 1 | 11 | First |
2 | 11 | 12 | Second |
3 | 21 | 23 | 二三 |
4 | 31 | 24 | Two-Four |
西1 | 西2 | 西3 | |
---|---|---|---|
1 | 1 | 21 | First |
2 | 11 | 22 | Second |
3 | 21 | 23 | 二三 |
4 | 31 | 24 | Two-Four |
推荐阅读
- SQL UPDATE更新语句
- SQL插入多行
- SQL INSERT INTO SELECT插入语句
- SQL INSERT INTO插入语句
- SQL INSERT语句
- SQL ORDER BY DESC子句
- SQL ORDER BY多列
- SQL ORDER BY LIMIT子句
- SQL ORDER BY RANDOM子句