logo

MySQL SLET JOIN

DELETE-forespørgsel er en underdel af datamanipulationssprog, der bruges til at fjerne rækkerne fra tabeller. Sådan sletter du deltage MySQL er et meget populært spørgsmål under interviewene. Det er ikke en nem proces at bruge delete join-sætningerne i MySQL. I dette afsnit vil vi beskrive, hvordan du kan slette poster fra flere tabeller ved at bruge INNER JOIN eller LEFT JOIN i DELETE-forespørgslen.

SLET JOIN med INNER JOIN

Forespørgslen på Indre Join kan bruges med Slet forespørgsel til at fjerne rækker fra én tabel og de matchende rækker fra den anden tabel, der opfylder den angivne betingelse.

Syntaks

Følgende er den syntaks, der kan bruges til at slette rækker fra mere end én tabel ved hjælp af Inner Join.

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

Her er målet et tabelnavn, hvorfra vi ønsker at slette rækker ved at matche den angivne betingelse. Antag, at du vil slette rækker fra tabellen T1 og T2 hvor elev_id = 2 , så kan det skrives som følgende udsagn:

længe til int java
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

I ovenstående syntaks er måltabellen (T1 og T2) skrevet mellem DELETE og FROM nøgleord. Hvis vi udelader et tabelnavn derfra, så slette erklæring fjerner kun rækker fra en enkelt tabel. Udtrykket skrevet med søgeord er den betingelse, der matcher rækkerne i tabeller, hvor du vil slette.

Eksempel

Antag, at vi har to tabeller studerende og kontakter der indeholder følgende data:

Tabel: studerende

MySQL SLET JOIN

Tabel: kontakter

MySQL SLET JOIN

Udfør følgende forespørgsel for at forstå Slet Deltag med Indre Sammenføjning. Denne sætning sletter en række, der har samme id i begge tabeller.

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

Efter vellykket udførelse vil den give følgende besked:

MySQL SLET JOIN

Kør nu følgende forespørgsel for at bekræfte, at rækkerne er slettet.

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

Du kan se, at rækkerne, hvor student_id=4 er slettet.

MySQL SLET JOIN MySQL SLET JOIN

SLET JOIN med LEFT JOIN

Vi har allerede lært LEFT JOIN-sætningen med SELECT-sætning, der returnerer alle rækker fra den venstre (første) tabel og de matchende eller ikke-matchende rækker fra en anden tabel. På samme måde kan vi også bruge LEFT JOIN-sætningen med nøgleordet DELETE til at slette rækker fra den venstre(første) tabel, der ikke har matchende rækker fra en højre(anden) tabel.

python generere uuid

Følgende forespørgsel forklarer det tydeligere, hvor DELETE-sætningen bruger LEFT JOIN til at slette rækker fra Tabel 1 der ikke har matchende rækker i Tabel 2 :

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

I ovenstående forespørgsel skal du bemærke, at vi kun vil bruge Tabel1 med DELETE-søgeordet, ikke begge dele, som det gjorde i INNER JOIN-sætningen.

Eksempel

Lad os lave en tabel ' kontakter 'og' kunder ' i en database, der indeholder følgende data:

Tabel: kontakter

stjernetopologi
MySQL SLET JOIN

Tabel: kunder

MySQL SLET JOIN

Udfør følgende erklæring, der fjerner kunden, der ikke har en mobiltelefon nummer:

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

Efter vellykket udførelse vil den give følgende besked:

MySQL SLET JOIN

Kør nu følgende forespørgsel for at bekræfte, at rækkerne er slettet.

 mysql> SELECT * FROM customers; 

Du kan se, at de rækker, hvor kunden ikke har mobiltelefonnummeret, slettes.

MySQL SLET JOIN