logo

MySQL SUPRIM UNIR

La consulta DELETE és una subpart del llenguatge de manipulació de dades que s'utilitza per eliminar les files de les taules. Com esborrar unir-se MySQL és una pregunta molt popular durant les entrevistes. No és un procés fàcil utilitzar les instruccions delete join a MySQL. En aquesta secció, descriurem com podeu suprimir registres de diverses taules amb l'ús d'INNER JOIN o LEFT JOIN a la consulta DELETE.

ELIMINEU JOIN amb INNER JOIN

La consulta Inner Join es pot utilitzar amb la consulta Delete per eliminar files d'una taula i les files coincidents de l'altra taula que compleixin la condició especificada.

Sintaxi

A continuació es mostren la sintaxi que es pot utilitzar per suprimir files de més d'una taula mitjançant Inner Join .

 DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition 

Aquí, l'objectiu és un nom de taula des d'on volem suprimir files fent coincidir la condició especificada. Suposem que voleu suprimir files de la taula T1 i T2 on student_id = 2 , llavors es pot escriure com la següent afirmació:

log4j
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

A la sintaxi anterior, la taula de destinació (T1 i T2) s'escriu entre les paraules clau DELETE i FROM. Si ometem qualsevol nom de taula d'allà, aleshores suprimir declaració només elimina files d'una única taula. L'expressió escrita amb ON paraula clau és la condició que coincideix amb les files de les taules on es suprimirà.

Exemple

Suposem que tenim dues taules estudiants i contactes que conté les dades següents:

Taula: alumnes

MySQL SUPRIM UNIR

Taula: contactes

MySQL SUPRIM UNIR

Executeu la consulta següent per entendre Suprimeix Unir-se amb Inner Join. Aquesta declaració elimina una fila que té el mateix identificador a les dues taules.

 DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4; 

Després de l'execució correcta, donarà el missatge següent:

ordenació d'inserció
MySQL SUPRIM UNIR

Ara, executeu la consulta següent per verificar que les files s'han suprimit correctament.

 mysql> SELECT * FROM students; mysql> SELECT * FROM contacts; 

Podeu veure que les files on el student_id=4 s'elimina.

MySQL SUPRIM UNIR MySQL SUPRIM UNIR

ELIMINA LA JOIN amb LEFT JOIN

Ja hem après la clàusula LEFT JOIN amb la instrucció SELECT que retorna totes les files de la taula esquerra (primera) i les files coincidents o no d'una altra taula. De la mateixa manera, també podem utilitzar la clàusula LEFT JOIN amb la paraula clau DELETE per suprimir files de la taula esquerra (primera) que no tinguin files coincidents d'una taula dreta (segona).

La consulta següent explica més clarament on la instrucció DELETE utilitza LEFT JOIN per suprimir files de Taula 1 que no té files coincidents al Taula 2 :

 DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL; 

A la consulta anterior, tingueu en compte que només utilitzarem la Taula1 amb la paraula clau DELETE, no les dues com es va fer a la instrucció INNER JOIN.

Exemple

Creem una taula' contactes 'i' clients ' en una base de dades que conté les dades següents:

Taula: contactes

exemple d'arbre de cerca binari
MySQL SUPRIM UNIR

Taula: clients

MySQL SUPRIM UNIR-SE

Executeu la següent instrucció que elimina el client que no té a mòbil número:

 DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL; 

Després de l'execució correcta, donarà el missatge següent:

MySQL SUPRIM UNIR

Ara, executeu la consulta següent per verificar que les files s'han suprimit correctament.

 mysql> SELECT * FROM customers; 

Podeu veure que s'eliminen les files on el client no té el número de telèfon mòbil.

MySQL SUPRIM UNIR