logo

MySQL ELIMINA UNISCITI

La query DELETE è una sottoparte del linguaggio di manipolazione dei dati utilizzata per rimuovere le righe dalle tabelle. Come eliminare la partecipazione MySQL è una domanda molto gettonata durante le interviste. Non è un processo semplice utilizzare le istruzioni delete join in MySQL. In questa sezione descriveremo come eliminare record da più tabelle utilizzando INNER JOIN o LEFT JOIN nella query DELETE.

ELIMINA JOIN con INNER JOIN

La query Inner Join può essere utilizzata con la query Elimina per rimuovere le righe da una tabella e le righe corrispondenti dall'altra tabella che soddisfano la condizione specificata.

Sintassi

Di seguito è riportata la sintassi che può essere utilizzata per eliminare righe da più di una tabella utilizzando Inner Join .

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

Qui, la destinazione è il nome di una tabella da cui vogliamo eliminare le righe soddisfacendo la condizione specificata. Supponiamo di voler eliminare righe dalla tabella T1 E T2 Dove id_studente = 2 , allora può essere scritta come la seguente affermazione:

macchina a stati finiti
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

Nella sintassi precedente, la tabella di destinazione (T1 e T2) è scritta tra le parole chiave DELETE e FROM. Se omettiamo qualsiasi nome di tabella da lì, allora il file eliminare l'istruzione rimuove solo le righe da una singola tabella. L'espressione scritta con SU La parola chiave è la condizione che corrisponde alle righe nelle tabelle da eliminare.

Esempio

Supponiamo di avere due tabelle studenti E contatti che contiene i seguenti dati:

Tabella: studenti

MySQL ELIMINA UNISCITI

Tabella: contatti

MySQL ELIMINA UNISCITI

Eseguire la query seguente per comprendere il Elimina Partecipa con unione interna. Questa istruzione elimina una riga che ha lo stesso ID in entrambe le tabelle.

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

Dopo l'esecuzione riuscita, verrà visualizzato il seguente messaggio:

myflixer
MySQL ELIMINA UNISCITI

Ora esegui la query seguente per verificare che le righe siano state eliminate correttamente.

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

Puoi vedere che le righe in cui il file ID_studente=4 viene eliminato.

MySQL ELIMINA UNISCITI MySQL ELIMINA UNISCITI

ELIMINA JOIN con JOIN A SINISTRA

Abbiamo già imparato la clausola LEFT JOIN con l'istruzione SELECT che restituisce tutte le righe dalla (prima) tabella di sinistra e le righe corrispondenti o non corrispondenti da un'altra tabella. Allo stesso modo, possiamo anche utilizzare la clausola LEFT JOIN con la parola chiave DELETE per eliminare righe dalla tabella di sinistra (prima) che non hanno righe corrispondenti da una tabella di destra (seconda).

La query seguente spiega più chiaramente da dove l'istruzione DELETE utilizza LEFT JOIN per eliminare le righe Tabella 1 che non ha righe corrispondenti nel file Tavolo 2 :

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

Nella query precedente, nota che utilizzeremo solo Table1 con la parola chiave DELETE, non entrambe come nell'istruzione INNER JOIN.

Esempio

Creiamo una tabella ' contatti ' E ' clienti ' in un database che contiene i seguenti dati:

Tabella: contatti

preity zinta
MySQL ELIMINA UNISCITI

Tabella: clienti

MySQL ELIMINA UNISCITI

Esegui la seguente istruzione che rimuove il cliente che non ha a cellulare numero:

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

Dopo l'esecuzione riuscita, verrà visualizzato il seguente messaggio:

MySQL ELIMINA UNISCITI

Ora esegui la query seguente per verificare che le righe siano state eliminate correttamente.

 mysql> SELECT * FROM customers; 

Puoi vedere che le righe in cui il cliente non ha il numero di cellulare vengono cancellate.

MySQL ELIMINA UNISCITI