ACTUALITZACIÓ SQL JOIN significa que actualitzarem una taula utilitzant una altra taula i la condició d'unió.
Prenguem un exemple de taula de clients. He actualitzat la taula de clients que conté els darrers detalls dels clients d'un altre sistema d'origen. Vull actualitzar la taula de clients amb les dades més recents. En aquest cas, realitzaré la unió entre la taula de destinació i la taula d'origen mitjançant la unió a l'identificador de client.
Vegem el sintaxi de la consulta SQL UPDATE amb la instrucció 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
Com utilitzar diverses taules a la instrucció SQL UPDATE amb JOIN
Prenem dues taules, la taula 1 i la taula 2.
Crea la taula 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'
Crea la taula 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'
Ara comproveu el contingut de la taula.
SELECT * FROM table_1
SELECT * FROM table_2
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 11 | Primer |
2 | 11 | 12 | Segon |
3 | 21 | 13 | Tercer |
4 | 31 | 14 | Quart |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 21 | Dos-Un |
2 | 11 | 22 | Dos-Dos |
3 | 21 | 23 | Dos-Tres |
4 | 31 | 24 | Dos-Quatre |
El nostre requisit és que tinguem la taula 2 que tingui dues files on Col 1 és 21 i 31. Volem actualitzar el valor de la taula 2 a la taula 1 per a les files on Col 1 és 21 i 31.
També volem actualitzar només els valors de Col 2 i Col 3.
La manera més senzilla i comuna és utilitzar la clàusula join a la instrucció d'actualització i utilitzar diverses taules a la instrucció d'actualització.
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)
Comproveu el contingut de la taula
SELECCIONAR DE LA taula 1
SELECCIONA DE LA taula 2
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 11 | Primer |
2 | 11 | 12 | Segon |
3 | 21 | 23 | Dos-Tres |
4 | 31 | 24 | Dos-Quatre |
Col 1 | Col 2 | Col 3 | |
---|---|---|---|
1 | 1 | 21 | Primer |
2 | 11 | 22 | Segon |
3 | 21 | 23 | Dos-Tres |
4 | 31 | 24 | Dos-Quatre |
Aquí podem veure que s'utilitza la clàusula join a la declaració d'actualització. Hem combinat dues taules mitjançant l'ús de la clàusula join.