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 1 | columna 2 | columna 3 | |
---|---|---|---|
1 | 1 | 11 | Primero |
2 | 11 | 12 | Segundo |
3 | 21 | 13 | Tercero |
4 | 31 | 14 | Cuatro |
columna 1 | columna 2 | columna 3 | |
---|---|---|---|
1 | 1 | 21 | Dos uno |
2 | 11 | 22 | Dos dos |
3 | 21 | 23 | Dos tres |
4 | 31 | 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 1 | columna 2 | columna 3 | |
---|---|---|---|
1 | 1 | 11 | Primero |
2 | 11 | 12 | Segundo |
3 | 21 | 23 | Dos tres |
4 | 31 | 24 | Dos cuatro |
columna 1 | columna 2 | columna 3 | |
---|---|---|---|
1 | 1 | 21 | Primero |
2 | 11 | 22 | Segundo |
3 | 21 | 23 | Dos tres |
4 | 31 | 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.