SQL UPDATE With Join Table With Examples

UPDATE Join statement:

In MySQL, you can use the JOIN clauses in the UPDATE statement to perform the cross-table update.

A JOIN clause is used to combine rows from two or more tables, based on a related column between them.

Syntax:

                      
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


How to use multiple tables in SQL UPDATE statement with JOIN?

Let's take two tables, table 1 and table 2.

Create table 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'

Now Create Table 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'


Now, Let's check the contents of the table we have just created.

SELECT * FROM table_1

SELECT * FROM table_2

Col 1Col 2Col 3
1111First
21112Second
32113Third
43114Fourth
Col 1Col 2Col 3
1121Two-One
21122Two-Two
32123Two-Three
43124Two-Four

Our requirement is that we have table 2 which has two rows where Col 1 is 21 and 31. We want to update the value from table 2 to table 1 for the rows where Col 1 is 21 and 31.

We want to also update the values of Col 2 and Col 3 only.

The most easiest and common way is to use join clause in the update statement and use multiple tables in the update statement.


 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) 

Now, Let's check the contents of the table we have just INNER joined.

SELECT * FROM table_1

SELECT * FROM table_2

Col 1Col 2Col 3
1111First
21112Second
32123Two-Three
43124Two-Four
Col 1Col 2Col 3
1121First
21122Second
32123Two-Three
43124Two-Four

Here we can see that using join clause in update statement. We have merged two tables by the use of join clause.