logo

ACTUALIZACIÓN SQL con ÚNETE

ACTUALIZAR SQL ÚNETE significa que actualizaremos una tabla usando otra tabla y condición de unión.

Tomemos un ejemplo de una tabla de clientes. He actualizado la tabla de clientes que contiene los detalles más recientes del cliente de otro sistema fuente. Quiero actualizar la tabla de clientes con los datos más recientes. En tal caso, realizaré una unión entre la tabla de destino y la tabla de origen utilizando la unión en el ID del cliente.

veamos el sintaxis de la consulta SQL UPDATE con la declaración 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 

Cómo utilizar varias tablas en la declaración SQL UPDATE con JOIN

Tomemos dos tablas, la tabla 1 y la tabla 2.

Crear tabla1

 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' 

Crear tabla2

 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' 

Ahora revisa el contenido de la tabla.

 SELECT * FROM table_1 
 SELECT * FROM table_2 
columna 1columna 2columna 3
1111Primero
21112Segundo
321 13 Tercero
431 14 Cuatro

columna 1columna 2columna 3
1121Dos uno
21122Dos dos
321 23 Dos tres
431 24 Dos cuatro

Nuestro requisito es que tengamos la tabla 2 que tiene dos filas donde la Col 1 es 21 y 31. Queremos actualizar el valor de la tabla 2 a la tabla 1 para las filas donde la Col 1 es 21 y 31.

También queremos actualizar los valores de Col 2 y Col 3 únicamente.

La forma más sencilla y común es utilizar la cláusula de unión en la declaración de actualización y utilizar varias tablas en la declaración de actualización.

 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) 

Consulta el contenido de la tabla.

SELECCIONAR DE la tabla 1

SELECCIONAR DE la tabla 2

columna 1columna 2columna 3
1111Primero
21112Segundo
321 23 Dos tres
431 24 Dos cuatro

columna 1columna 2columna 3
1121Primero
21122Segundo
321 23 Dos tres
431 24 Dos cuatro

Aquí podemos ver el uso de la cláusula de unión en la declaración de actualización. Hemos fusionado dos tablas mediante el uso de una cláusula de unión.