Wie MySQL mit den Anweisungen für die Löscherjoiniten löscht

Wie MySQL mit den Anweisungen für die Löscherjoiniten löscht
In diesem Tutorial wird erörtert.

Der Zweck dieses Tutorials besteht darin, zu verstehen. Wenn Sie neu in MySQL sind, berücksichtigen Sie unsere anderen Tutorials, wie z.

Lassen Sie uns anfangen.

Grundnutzung: Löschen mit innerem Join

Die erste Löschmethode, über die wir diskutieren, ist die Verwendung der MySQL -Löschklausel in einer inneren Join -Anweisung, um Daten aus Zeilen zu entfernen, die einer anderen Tabelle entsprechen.

Die allgemeine Syntax zur Implementierung einer solchen Abfrage ist unten dargestellt:

Löschen.col = tbl2.col wo [Zustand];

Lassen Sie mich Ihnen versichern, dass es einfacher ist als es aussieht. Lassen Sie mich erklären:

Wir beginnen mit der Angabe der Tabellen, aus denen wir die Daten entfernen möchten. Tabellen werden zwischen dem Löschen und der Klausel angegeben.

Im zweiten Teil geben wir die Bedingung für die übereinstimmenden Zeilen in den festgelegten Tabellen an. Zum Beispiel:

TBL1.col = tbl2.col

Schließlich setzen wir den Bedingung, der die Zeilen in den angegebenen Tabellen bestimmt, die gelöscht werden sollen.

Beispiel Anwendungsfall

Lassen Sie mich ein Beispiel verwenden, um zu veranschaulichen, wie wir die Löschklausel und die innere Verbindung verwenden können, um Zeilen aus mehreren Tabellen zu entfernen. Betrachten Sie die folgenden Fragen:

Schema Gesellschaft schaffen;
Nutzen die Gesellschaft;
Droptabelle, wenn Benutzer vorhanden sind, Kontakte;
Tabellenbenutzer erstellen (Benutzer
user_id int primärschlüssel auto_increment,
First_Name Varchar (100),
last_name varchar (100),
Status varchar (50)
);
Tischkontakte erstellen (
home_id int primärschlüssel auto_increment,
Tel Varchar (50),
Adress varchar (255)
);
Einfügen in Benutzer (First_Name, Last_Name, State) Werte ("John", "Müller", "Colorado"), ("Mary", "Jane", "California"), ("Peter", "Quill", "Neu York");
Einfügen in Kontakte (Tel, Adresse) Werte ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 Est Meadow, NYC ");

Sobald wir solche Daten haben, können wir veranschaulichen, wie Sie Löschen mit innerem Join verwenden, wie in der folgenden Abfrage gezeigt:

Gesellschaft löschen.Benutzer, Gesellschaft.Kontakte aus der Gesellschaft.Benutzer Innere Join -Kontakte auf user_id = home_id wobei user_id = 3;

In der obigen Abfrage werden das Ergebnis angezeigt, wie unten gezeigt:

Zwei in 7 ms betroffene Zeilen, was darauf hinweist, dass zwei Zeilen entfernt wurden.

Löschen mit links join

Die zweite Löschmethode, die wir diskutieren werden, besteht darin, den linken Join zu verwenden. Die allgemeine Syntax für diesen Löschentyp ist wie unten gezeigt:

Löschen Sie TBL1 aus TBL1 Links Join TBL2 auf TBL1.col = tbl2.col wo tble.col ist null;

Für das Löschen mit dem linken Join geben wir nur eine Tabelle an, die den inneren Join-Jou, in dem wir zwei Tabellen angegeben haben.

Betrachten Sie die gesamte Abfrage unten:

Nutzen die Gesellschaft;
Droptabelle, wenn Benutzer vorhanden sind, Kontakte;
Tabellenbenutzer erstellen (Benutzer
user_id int primärschlüssel auto_increment,
First_Name Varchar (100),
last_name varchar (100),
Status varchar (50)
);
Tischkontakte erstellen (
home_id int primärschlüssel auto_increment,
Tel Varchar (50),
Adress varchar (255)
);
Einfügen in Benutzer (First_Name, Last_Name, State) Werte ("John", "Müller", "Colorado"), ("Mary", "Jane", "California"), ("Peter", "Quill", "Neu York "), (" Mystic "," Arts "," South Carolina ");
Einfügen in Kontakte (Tel, Adresse) Werte ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 Est Meadow NYC "), (" 843-555-0105 ", NULL);
Benutzer von Benutzern linken linksgelassene Kontakte auf user_id = home_id, wobei die Adresse null ist
Wählen Sie * von Benutzern aus;

Sobald wir die obige Abfrage ausgeführt haben, ist der Benutzer, dessen Adresse nach dem Löschen des Join null ist, und das Ausgabeergebnis ist wie unten gezeigt:

Abschluss

In diesem Tutorial haben wir besprochen, wie MySQL Delete mit Join -Anweisungen verwendet wird, um Daten aus mehreren Tabellen zu löschen.