La consulta DELETE es una subparte del lenguaje de manipulación de datos que se utiliza para eliminar filas de las tablas. Cómo eliminar unirse a mysql Es una pregunta muy popular durante las entrevistas. No es un proceso fácil utilizar las declaraciones de eliminación y unión en MySQL. En esta sección, describiremos cómo puede eliminar registros de varias tablas con el uso de INNER JOIN o LEFT JOIN en la consulta DELETE.
ELIMINAR UNIÓN con UNIÓN INTERNA
La consulta de unión interna se puede utilizar con la consulta Eliminar para eliminar filas de una tabla y las filas coincidentes de la otra tabla que cumplen la condición especificada.
Sintaxis
La siguiente es la sintaxis que se puede usar para eliminar filas de más de una tabla usando Inner Join.
DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition
Aquí, el objetivo es el nombre de una tabla de la que queremos eliminar filas cumpliendo la condición especificada. Supongamos que desea eliminar filas de la tabla. T1 y T2 dónde ID_estudiante = 2 , entonces se puede escribir como la siguiente declaración:
par c ++
DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2;
En la sintaxis anterior, la tabla de destino (T1 y T2) se escribe entre las palabras clave DELETE y FROM. Si omitimos algún nombre de tabla desde allí, entonces el eliminar declaración solo elimina filas de una sola tabla. La expresión escrita con EN La palabra clave es la condición que coincide con las filas de las tablas que va a eliminar.
Ejemplo
Supongamos que tenemos dos mesas. estudiantes y contactos que contiene los siguientes datos:
Tabla: estudiantes
Tabla: contactos
Ejecute la siguiente consulta para comprender el Eliminar Unirse con unión interior. Esta declaración elimina una fila que tiene la misma identificación en ambas tablas.
DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4;
Después de una ejecución exitosa, dará el siguiente mensaje:
recorrido de preorden
Ahora, ejecute la siguiente consulta para verificar que las filas se eliminaron correctamente.
mysql> SELECT * FROM students; mysql> SELECT * FROM contacts;
Puedes ver que las filas donde ID_estudiante=4 esta borrado.
ELIMINAR UNIRSE con UNIRSE A LA IZQUIERDA
Ya hemos aprendido la cláusula LEFT JOIN con la instrucción SELECT que devuelve todas las filas de la (primera) tabla izquierda y las filas coincidentes o no coincidentes de otra tabla. De manera similar, también podemos usar la cláusula LEFT JOIN con la palabra clave DELETE para eliminar filas de la tabla izquierda (primera) que no tienen filas coincidentes de una tabla derecha (segunda).
La siguiente consulta explica más claramente dónde la declaración DELETE usa LEFT JOIN para eliminar filas de Tabla 1 que no tiene filas coincidentes en el Tabla 2 :
DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL;
En la consulta anterior, observe que solo usaremos la Tabla1 con la palabra clave DELETE, no ambas como lo hicimos en la declaración INNER JOIN.
Ejemplo
Creemos una tabla ' contactos ' y ' clientes ' en una base de datos que contiene los siguientes datos:
Tabla: contactos
programación java de números primos
Tabla: clientes
Ejecute la siguiente declaración que elimina al cliente que no tiene un Teléfono móvil número:
DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL;
Después de una ejecución exitosa, dará el siguiente mensaje:
Ahora, ejecute la siguiente consulta para verificar que las filas se eliminaron correctamente.
mysql> SELECT * FROM customers;
Puedes ver que se eliminan las filas donde el cliente no tiene el número de celular.