logo

MySQL VERWIJDEREN JOIN

DELETE-query is een subonderdeel van de gegevensmanipulatietaal die wordt gebruikt voor het verwijderen van rijen uit tabellen. Hoe je deelname verwijdert MySQL is een zeer populaire vraag tijdens de interviews. Het is geen eenvoudig proces om de delete join-instructies in MySQL te gebruiken. In deze sectie gaan we beschrijven hoe u records uit meerdere tabellen kunt verwijderen met behulp van INNER JOIN of LEFT JOIN in de DELETE-query.

VERWIJDER JOIN met INNER JOIN

De Inner Join-query kan samen met de Delete-query worden gebruikt om rijen uit de ene tabel te verwijderen en de overeenkomende rijen uit de andere tabel die aan de opgegeven voorwaarde voldoen.

Syntaxis

Hieronder volgt de syntaxis die kan worden gebruikt voor het verwijderen van rijen uit meer dan één tabel met behulp van Inner Join.

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

Hier is het doel een tabelnaam waaruit we rijen willen verwijderen door aan de opgegeven voorwaarde te voldoen. Stel dat u rijen uit de tabel wilt verwijderen T1 En T2 waar student_id = 2 , dan kan het als de volgende verklaring worden geschreven:

java lang naar int
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

In de bovenstaande syntaxis wordt de doeltabel (T1 en T2) geschreven tussen de trefwoorden DELETE en FROM. Als we daar een tabelnaam weglaten, dan wordt de verklaring verwijderen verwijdert alleen rijen uit één tabel. De uitdrukking geschreven met OP trefwoord is de voorwaarde die overeenkomt met de rijen in tabellen die u gaat verwijderen.

Voorbeeld

Stel dat we twee tafels hebben studenten En contacten die de volgende gegevens bevat:

Tabel: studenten

MySQL VERWIJDEREN JOIN

Tabel: contacten

MySQL VERWIJDEREN JOIN

Voer de volgende query uit om inzicht te krijgen in de Deelname verwijderen met Innerjoin. Met deze instructie wordt een rij verwijderd die in beide tabellen dezelfde ID heeft.

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

Na succesvolle uitvoering geeft het de volgende melding:

MySQL VERWIJDEREN JOIN

Voer nu de volgende query uit om te verifiëren of de rijen met succes zijn verwijderd.

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

Je kunt zien dat de rijen waar de student_id=4 is verwijderd.

MySQL VERWIJDEREN JOIN MySQL VERWIJDEREN JOIN

VERWIJDER JOIN met LINKER JOIN

We hebben de LEFT JOIN-clausule met de SELECT-instructie al geleerd, die alle rijen uit de linker(eerste) tabel en de overeenkomende of niet overeenkomende rijen uit een andere tabel retourneert. Op dezelfde manier kunnen we ook de LEFT JOIN-clausule gebruiken met het sleutelwoord DELETE voor het verwijderen van rijen uit de linker(eerste) tabel die geen overeenkomende rijen uit een rechter(tweede) tabel hebben.

De volgende query legt duidelijker uit waar de DELETE-instructie LEFT JOIN gebruikt voor het verwijderen van rijen Tafel 1 die geen overeenkomende rijen in de Tafel 2 :

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

Merk op dat we in de bovenstaande zoekopdracht alleen Tabel1 gebruiken met het sleutelwoord DELETE, en niet beide, zoals in de INNER JOIN-instructie.

Voorbeeld

Laten we een tabel maken ' contacten ' En ' klanten ' in een database die de volgende gegevens bevat:

Tabel: contacten

ze zijn zangers
MySQL VERWIJDEREN JOIN

Tabel: klanten

MySQL VERWIJDEREN JOIN

Voer de volgende instructie uit die de klant verwijdert die geen a heeft mobiele telefoon nummer:

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

Na succesvolle uitvoering geeft het de volgende melding:

MySQL VERWIJDEREN JOIN

Voer nu de volgende query uit om te verifiëren of de rijen met succes zijn verwijderd.

 mysql> SELECT * FROM customers; 

U ziet dat de rijen waarin de klant het mobiele telefoonnummer niet heeft, zijn verwijderd.

MySQL VERWIJDEREN JOIN