La consulta ACTUALIZAR en MySQL es una declaración DML que se utiliza para modificar los datos de una tabla. La consulta UPDATE debe requerir la cláusula SET y WHERE. La cláusula SET se utiliza para cambiar los valores de la columna especificada en la cláusula WHERE.
La cláusula JOIN en MySQL se usa en la declaración para recuperar datos uniendo varias tablas dentro de una sola consulta.
UPDATE JOIN es una declaración de MySQL que se utiliza para realizar actualizaciones entre tablas, lo que significa que podemos actualizar una tabla usando otra tabla con la condición de la cláusula JOIN. . Esta consulta actualiza y modifica los datos donde se unen más de una tabla según PRIMARIO clave y EXTRANJERO Clave y una condición de unión especificada. Podemos actualizar una o varias columnas a la vez usando el ACTUALIZAR consulta .
NOTA: La instrucción MySQL UPDATE JOIN es compatible con la versión 4.0 o superior.
Sintaxis
A continuación se muestra una sintaxis básica de la instrucción UPDATE JOIN para modificar el registro en la tabla MySQL:
UPDATE Tab1, Tab2, [INNER JOIN | LEFT JOIN] Tab1 ON Tab1.C1 = Tab2.C1 SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Condition;
En la sintaxis anterior de MySQL UPDATE JOIN:
Primero, hemos especificado las dos tablas: la tabla principal (Tab1) y otra tabla (tab2) después de la cláusula UPDATE. Después de la cláusula UPDATE, es necesario especificar al menos una tabla. A continuación hemos especificado los tipos de Cláusulas UNIRSE , es decir, INNER JOIN o UNIRSE A LA IZQUIERDA , que aparecen justo después de la cláusula UPDATE y luego un predicado de unión especificado después de la palabra clave ON. Luego, tenemos que asignar los nuevos valores a las columnas en Tab1 y/o Tab2 para modificarlos en la tabla. Finalmente, la condición de la cláusula WHERE se utiliza para limitar las filas para la actualización.
¿Cómo funciona UPDATE JOIN en MySQL?
El proceso de trabajo ACTUALIZAR UNIRSE en mysql es el mismo que se describe en la sintaxis anterior. Pero a veces, encontramos que esta consulta por sí sola realiza la actualización entre tablas sin involucrar ninguna unión. La siguiente sintaxis es otra forma de actualizar una tabla usando otra tabla. :
lista vs conjunto en java
UPDATE Tab1, Tab2, SET Tab1.C2 = Tab2.C2, Tab2.C3 = expression WHERE Tab1.C1 = Tab2.C1 AND condition;
La declaración UPDATE anterior produce el mismo resultado que UPDATE JOIN con cláusulas INNER JOIN o LEFT JOIN. Significa que podemos reescribir la sintaxis anterior como la sintaxis ACTUALIZAR UNIRSE que se muestra arriba:
UPDATE Tab1,Tab2 INNER JOIN Tab2 ON Tab1.C1 = Tab2.C1 SET Tab1.C2 = Taba2.C2, Tab2.C3 = expression WHERE condition
Tomemos algunos ejemplos para comprender cómo funciona la declaración UPDATE JOIN en la tabla MySQL.
ACTUALIZAR UNIRSE Ejemplos
Primero, crearemos dos tablas llamadas Actuación y Empleado , y ambas tablas están relacionadas a través de una clave externa. Aquí, el 'Rendimiento' es un tabla principal , y 'Empleados' es el niño mesa . Los siguientes scripts crean ambas tablas junto con sus registros.
Tabla: Rendimiento
CREATE TABLE Performance ( performance INT(11) NOT NULL, percentage FLOAT NOT NULL, PRIMARY KEY (performance) );
A continuación, complete los registros de la tabla utilizando la instrucción INSERT.
INSERT INTO Performance (performance, percentage) VALUES(101,0), (102,0.01), (103,0.03), (104,0.05), (105,0.08);
Luego, ejecute la consulta SELECT para verificar los datos como se muestra en la siguiente imagen:
Tabla: Empleados
CREATE TABLE Employees ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, performance INT(11) DEFAULT NULL, salary FLOAT DEFAULT NULL, CONSTRAINT fk_performance FOREIGN KEY (performance) REFERENCES Performance (performance) );
A continuación, complete los registros de la tabla utilizando la instrucción INSERT.
INSERT INTO Employees (name, performance, salary) VALUES('Mary', 101, 55000), ('John', 103, 65000), ('Suzi', 104, 85000), ('Gracia', 105, 110000), ('Nancy Johnson', 103, 95000), ('Joseph', 102, 45000), ('Donald', 103, 50000);
Luego, ejecute la consulta SELECT para verificar los datos como se muestra en la siguiente imagen:
ACTUALIZAR UNIRSE con INNER JOIN Ejemplo
Supongamos que queremos actualizar el salario del empleado en función de su desempeño . Podemos actualizar el salario de un empleado en la tabla Empleados usando la instrucción UPDATE INNER JOIN porque el rendimiento porcentaje se almacena en la tabla de rendimiento.
En las tablas anteriores, tenemos que usar el actuación para unirse a la tabla Empleados y Desempeño. Vea la siguiente consulta:
UPDATE Employees e INNER JOIN Performance p ON e.performance = p.performance SET salary = salary + salary * percentage;
Después de ejecutar la declaración anterior, obtendremos el siguiente resultado, donde podemos ver que la columna de salario del empleado se actualizó correctamente.
Entendamos cómo funciona esta consulta en MySQL. En la consulta, hemos especificado solo la tabla Empleados después de la cláusula ACTUALIZAR. Es porque queremos cambiar el registro solo en la tabla Empleados, no en ambas tablas.
La consulta compara los valores de la columna de rendimiento para cada fila de la tabla 'Empleados' con la columna de rendimiento de la tabla 'Rendimiento'. Si obtiene la columna de rendimiento coincidente, toma el porcentaje en la tabla de rendimiento y actualiza la columna de salario de la tabla de empleados. Esta consulta actualiza todos los registros en la tabla Empleados porque no hemos especificado la cláusula WHERE en la consulta UPDATE JOIN.
ACTUALIZAR UNIRSE con el ejemplo de UNIRSE IZQUIERDA
Para comprender UPDATE JOIN con LEFT JOIN, primero debemos insertar dos filas nuevas en la tabla Empleados:
INSERT INTO Employees (name, performance, salary) VALUES('William', NULL, 73000), ('Rayan', NULL, 92000);
Dado que estos empleados son nuevos contratados, su registro de desempeño no está disponible. Vea el siguiente resultado:
Si queremos actualizar el salario de los empleados recién contratados , no podemos utilizar la consulta UPDATE INNER JOIN. Se debe a la falta de disponibilidad de sus datos de rendimiento en la tabla de Rendimiento. Por lo tanto, utilizaremos la declaración UPDATE LEFT JOIN para satisfacer esta necesidad.
La instrucción UPDATE LEFT JOIN en MySQL se usa para actualizar una fila en una tabla cuando no se encuentran registros en la fila correspondiente de otra tabla.
Por ejemplo , si queremos aumentar el salario de un empleado recién contratado en un 2,5%, podemos hacerlo con la ayuda de la siguiente declaración:
UPDATE Employees e LEFT JOIN Performance p ON e.performance = p.performance SET salary = salary + salary * 0.025 WHERE p.percentage IS NULL;
Después de ejecutar la consulta anterior, obtendremos el resultado que se muestra a continuación en la imagen donde podemos ver que el salario de los empleados recién contratados se actualizó correctamente.
En este artículo, hemos aprendido la declaración MySQL Update Join que nos permite alterar los datos existentes en una tabla con los nuevos datos de otra tabla con la condición de la cláusula JOIN. Esta consulta es ventajosa cuando necesitamos modificar ciertas columnas especificadas en la cláusula WHERE junto con el uso de las cláusulas INNER JOIN o LEFT JOIN.