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 PÅ 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
Tabel: kontakter
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:
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.
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
Tabel: kunder
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:
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.