Come MySQL elimina le dichiarazioni di eliminazione

Come MySQL elimina le dichiarazioni di eliminazione
Questo tutorial discuterà come utilizzare la clausola MySQL ELETE in un'istruzione di join per eliminare i dati da più tabelle che soddisfano la condizione specificata.

Lo scopo di questo tutorial è di aiutarti a capire come utilizzare la clausola di eliminazione insieme alla clausola di join per rimuovere i dati contemporaneamente. Se sei nuovo in MySQL, considera i nostri altri tutorial, come join e drop tables tutorial.

Iniziamo.

Uso di base: elimina con interiore

Il primo metodo di eliminazione che discuteremo è come utilizzare la clausola MySQL ELETE all'interno di un'istruzione di join interner per rimuovere i dati dalle righe che corrispondono a un'altra tabella.

La sintassi generale per implementare tale query è mostrata di seguito:

Elimina TBL1, TBL2 da TBL1 interno unito TBL2 su TBL1.col = tbl2.col dove [condizione];

Lascia che ti assicuri che è più facile di quanto sembri. Lasciatemi spiegare:

Iniziamo specificando le tabelle da cui vogliamo rimuovere i dati. Le tabelle sono specificate tra la cancellazione e dalla clausola.

Nella seconda parte, specifichiamo la condizione per le righe corrispondenti nelle tabelle impostate. Per esempio:

TBL1.col = tbl2.col

Infine, impostiamo la condizione che determina le righe nelle tabelle specificate da eliminare.

Esempio di utilizzo

Vorrei usare un esempio per illustrare come possiamo usare la clausola elimina e il join interno per rimuovere le righe da più tabelle. Considera le domande seguenti:

Creare Schema Society;
Usare la società;
Drop tabella se esistono utenti, contatti;
Crea utenti di tabelle (
User_id Int Key Primary Auto_Increment,
first_name varchar (100),
last_name varchar (100),
State Varchar (50)
);
Crea contatti di tabella (
home_id int principale chiave primaria automatica,
Tel Varchar (50),
Indirizzo Varchar (255)
);
Inserisci negli utenti (First_name, last_name, State) Values ​​("John", "Muller", "Colorado"), ("Mary", "Jane", "California"), ("Peter", "Quill", "Nuovo York ");
Inserisci i contatti (Tel, indirizzo) Valori ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 Est Meadow, New York ");

Una volta che abbiamo tali dati, possiamo illustrare come utilizzare Elimina con il join interno come mostrato nella query seguente:

Elimina la società.utenti, società.Contatti della società.Utenti INTER UNIZZARE CONTATTI SU USER_ID = Home_ID WHERE USER_ID = 3;

La query sopra visualizzerà il risultato come mostrato di seguito:

Due righe interessate in 7 ms, il che indica che sono state rimosse due righe.

Elimina con un join a sinistra

Il secondo metodo di eliminazione che discuteremo è usare il join a sinistra. La sintassi generale per questo tipo di eliminazione è come mostrato di seguito:

Elimina TBL1 da TBL1 sinistra unisci TBL2 su TBL1.col = tbl2.Col dove tble.col è null;

Per eliminare con un join a sinistra, specifichiamo solo una tabella-non simile al join interno in cui abbiamo specificato due tabelle.

Considera l'intera domanda di seguito:

Usare la società;
Drop tabella se esistono utenti, contatti;
Crea utenti di tabelle (
User_id Int Key Primary Auto_Increment,
first_name varchar (100),
last_name varchar (100),
State Varchar (50)
);
Crea contatti di tabella (
home_id int principale chiave primaria automatica,
Tel Varchar (50),
Indirizzo Varchar (255)
);
Inserisci negli utenti (First_name, last_name, State) Values ​​("John", "Muller", "Colorado"), ("Mary", "Jane", "California"), ("Peter", "Quill", "Nuovo York "), (" Mystic "," Arts "," South Carolina ");
Inserisci i contatti (Tel, indirizzo) Valori ("303-555-0156", "281 Denver, Colorado"), ("661-555-0134", "302 Drive, Bakersfield"), ("516-555-0148 "," 626 Est Meadow NYC "), (" 843-555-0105 ", null);
Elimina gli utenti dagli utenti hanno lasciato i contatti di join su user_id = home_id dove l'indirizzo è null;
Seleziona * dagli utenti;

Una volta eseguite la query sopra, l'utente il cui indirizzo è nullo dopo aver eliminato il join e il risultato di output è mostrato di seguito:

Conclusione

In questo tutorial, abbiamo discusso di come utilizzare MySQL Elimina con le istruzioni di join per eliminare i dati da più tabelle.