logo

MySQL JOIN LÖSCHEN

Die DELETE-Abfrage ist ein Unterteil der Datenbearbeitungssprache, die zum Entfernen von Zeilen aus Tabellen verwendet wird. So löschen Sie die Teilnahme MySQL ist eine sehr beliebte Frage in Vorstellungsgesprächen. Es ist kein einfacher Prozess, die Lösch-Join-Anweisungen in MySQL zu verwenden. In diesem Abschnitt beschreiben wir, wie Sie mithilfe von INNER JOIN oder LEFT JOIN in der DELETE-Abfrage Datensätze aus mehreren Tabellen löschen können.

JOIN mit INNER JOIN LÖSCHEN

Die Inner Join-Abfrage kann mit der Löschabfrage verwendet werden, um Zeilen aus einer Tabelle und die entsprechenden Zeilen aus der anderen Tabelle zu entfernen, die die angegebene Bedingung erfüllen.

Syntax

Im Folgenden finden Sie die Syntax, die zum Löschen von Zeilen aus mehr als einer Tabelle mithilfe von Inner Join verwendet werden kann.

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

Hier ist das Ziel ein Tabellenname, aus dem wir Zeilen löschen möchten, indem wir die angegebene Bedingung erfüllen. Angenommen, Sie möchten Zeilen aus der Tabelle löschen T1 Und T2 Wo student_id = 2 , dann kann es wie folgt geschrieben werden:

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

In der obigen Syntax wird die Zieltabelle (T1 und T2) zwischen den Schlüsselwörtern DELETE und FROM geschrieben. Wenn wir dort einen Tabellennamen weglassen, dann wird der Löschanweisung Entfernt nur Zeilen aus einer einzelnen Tabelle. Der mit geschriebene Ausdruck AN Das Schlüsselwort ist die Bedingung, die den Zeilen in den Tabellen entspricht, die Sie löschen möchten.

Beispiel

Angenommen, wir haben zwei Tische Studenten Und Kontakte das folgende Daten enthält:

Tisch: Studierende

MySQL JOIN LÖSCHEN

Tabelle: Kontakte

MySQL JOIN LÖSCHEN

Führen Sie die folgende Abfrage aus, um das zu verstehen Beitritt löschen mit Inner Join. Diese Anweisung löscht eine Zeile, die in beiden Tabellen dieselbe ID hat.

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

Nach erfolgreicher Ausführung wird die folgende Meldung ausgegeben:

MySQL JOIN LÖSCHEN

Führen Sie nun die folgende Abfrage aus, um zu überprüfen, ob die Zeilen erfolgreich gelöscht wurden.

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

Sie können sehen, dass die Zeilen, in denen die student_id=4 ist gelöscht.

Fabrikdesignmuster
MySQL JOIN LÖSCHEN MySQL JOIN LÖSCHEN

JOIN mit LEFT JOIN LÖSCHEN

Wir haben bereits die LEFT JOIN-Klausel mit der SELECT-Anweisung kennengelernt, die alle Zeilen aus der linken (ersten) Tabelle und die passenden oder nicht passenden Zeilen aus einer anderen Tabelle zurückgibt. Ebenso können wir die LEFT JOIN-Klausel mit dem Schlüsselwort DELETE verwenden, um Zeilen aus der linken (ersten) Tabelle zu löschen, die keine passenden Zeilen aus einer rechten (zweiten) Tabelle haben.

Die folgende Abfrage erklärt deutlicher, wo die DELETE-Anweisung LEFT JOIN zum Löschen von Zeilen verwendet Tabelle 1 das keine übereinstimmenden Zeilen in der hat Tabelle 2 :

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

Beachten Sie, dass wir in der obigen Abfrage nur Table1 mit dem Schlüsselwort DELETE verwenden, nicht beides, wie es in der INNER JOIN-Anweisung der Fall war.

Beispiel

Lass uns eine Tabelle erstellen ' Kontakte ' Und ' Kunden ' in einer Datenbank, die die folgenden Daten enthält:

Tabelle: Kontakte

So laden Sie YouTube-Videos VLC herunter
MySQL JOIN LÖSCHEN

Tabelle: Kunden

MySQL JOIN LÖSCHEN

Führen Sie die folgende Anweisung aus, die den Kunden entfernt, der keinen hat Handy Nummer:

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

Nach erfolgreicher Ausführung wird folgende Meldung ausgegeben:

MySQL JOIN LÖSCHEN

Führen Sie nun die folgende Abfrage aus, um zu überprüfen, ob die Zeilen erfolgreich gelöscht wurden.

 mysql> SELECT * FROM customers; 

Sie können sehen, dass die Zeilen gelöscht werden, in denen der Kunde nicht über die Mobiltelefonnummer verfügt.

MySQL JOIN LÖSCHEN