logo

MySQL SLETT BLI MED

DELETE-spørringen er en underdel av datamanipuleringsspråket som brukes for å fjerne radene fra tabeller. Slik sletter du bli med MySQL er et veldig populært spørsmål under intervjuene. Det er ikke en enkel prosess å bruke delete join-setningene i MySQL. I denne delen skal vi beskrive hvordan du kan slette poster fra flere tabeller ved å bruke INNER JOIN eller LEFT JOIN i DELETE-spørringen.

SLETT JOIN med INNER JOIN

Inner Join-spørringen kan brukes med Slett-spørringen for å fjerne rader fra én tabell og de samsvarende radene fra den andre tabellen som oppfyller den angitte betingelsen.

Syntaks

Følgende er syntaksen som kan brukes til å slette rader fra mer enn én tabell ved hjelp av Inner Join.

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

Her er målet et tabellnavn hvorfra vi ønsker å slette rader ved å matche den angitte betingelsen. Anta at du vil slette rader fra tabellen T1 og T2 hvor student_id = 2 , så kan det skrives som følgende utsagn:

shweta tiwari
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

I syntaksen ovenfor er måltabellen (T1 og T2) skrevet mellom DELETE og FROM nøkkelord. Hvis vi utelater et hvilket som helst tabellnavn derfra, vil slette uttalelse fjerner bare rader fra en enkelt tabell. Uttrykket skrevet med nøkkelord er betingelsen som samsvarer med radene i tabellene der du skal slette.

Eksempel

Anta at vi har to bord studenter og kontakter som inneholder følgende data:

Tabell: studenter

MySQL SLETT BLI MED

Tabell: kontakter

MySQL SLETT BLI MED

Utfør følgende spørring for å forstå Slett Bli med med Inner Join. Denne setningen sletter en rad som har samme id i begge tabellene.

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

Etter vellykket kjøring vil den gi følgende melding:

MySQL SLETT BLI MED

Kjør nå følgende spørring for å bekrefte at radene er slettet.

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

Du kan se at radene der student_id=4 er slettet.

MySQL SLETT BLI MED MySQL SLETT BLI MED

SLETT JOIN med LEFT JOIN

Vi har allerede lært LEFT JOIN-klausulen med SELECT-setningen som returnerer alle rader fra den venstre (første) tabellen og de samsvarende eller ikke-matchende radene fra en annen tabell. På samme måte kan vi også bruke LEFT JOIN-leddet med DELETE-nøkkelordet for å slette rader fra venstre (første) tabell som ikke har samsvarende rader fra en høyre (andre) tabell.

gnistopplæring

Følgende spørring forklarer det tydeligere hvor DELETE-setningen bruker LEFT JOIN for å slette rader fra Tabell 1 som ikke har samsvarende rader i Tabell 2 :

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

I søket ovenfor, legg merke til at vi bare vil bruke Tabell1 med DELETE-nøkkelordet, ikke begge deler som gjorde i INNER JOIN-setningen.

Eksempel

La oss lage en tabell ' kontakter ' og ' kunder ' i en database som inneholder følgende data:

Tabell: kontakter

stjernetopologi
MySQL SLETT BLI MED

Tabell: kunder

MySQL SLETT BLI MED

Utfør følgende setning som fjerner kunden som ikke har en mobiltelefon Antall:

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

Etter vellykket kjøring vil den gi følgende melding:

MySQL SLETT BLI MED

Kjør nå følgende spørring for å bekrefte at radene er slettet.

 mysql> SELECT * FROM customers; 

Du kan se at radene der kunden ikke har mobiltelefonnummeret blir slettet.

MySQL SLETT BLI MED