logo

MySQL DELETE GÅ MED

DELETE-frågan är en underdel av datamanipuleringsspråket som används för att ta bort rader från tabeller. Hur man tar bort join in MySQL är en mycket populär fråga under intervjuerna. Det är inte en lätt process att använda delete join-satserna i MySQL. I det här avsnittet kommer vi att beskriva hur du kan ta bort poster från flera tabeller med hjälp av INNER JOIN eller LEFT JOIN i DELETE-frågan.

DELETE JOIN med INNER JOIN

Inner Join-frågan kan användas med Delete-frågan för att ta bort rader från en tabell och de matchande raderna från den andra tabellen som uppfyller det angivna villkoret.

Syntax

Följande är syntaxen som kan användas för att ta bort rader från mer än en tabell med Inner Join.

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

Här är målet ett tabellnamn varifrån vi vill ta bort rader genom att matcha det angivna villkoret. Anta att du vill ta bort rader från tabellen T1 och T2 var student_id = 2 , då kan det skrivas som följande påstående:

css första barn
 DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2; 

I ovanstående syntax skrivs måltabellen (T1 och T2) mellan nyckelord DELETE och FROM. Om vi ​​utelämnar något tabellnamn därifrån, då ta bort uttalande tar bara bort rader från en enda tabell. Uttrycket skrivet med nyckelord är villkoret som matchar raderna i tabeller där du ska ta bort.

Exempel

Anta att vi har två bord studenter och kontakter som innehåller följande data:

Tabell: studenter

MySQL DELETE GÅ MED

Tabell: kontakter

MySQL DELETE GÅ MED

Kör följande fråga för att förstå Ta bort Gå med med Inner Join. Denna sats tar bort en rad som har samma id i båda tabellerna.

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

Efter framgångsrik körning kommer det att ge följande meddelande:

MySQL DELETE GÅ MED

Kör nu följande fråga för att verifiera raderna som tagits bort.

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

Du kan se att raderna där student_id=4 är raderad.

MySQL DELETE GÅ MED MySQL DELETE GÅ MED

DELETE JOIN med LEFT JOIN

Vi har redan lärt oss LEFT JOIN-satsen med SELECT-satsen som returnerar alla rader från den vänstra (första) tabellen och de matchande eller inte matchande raderna från en annan tabell. På liknande sätt kan vi också använda LEFT JOIN-satsen med nyckelordet DELETE för att ta bort rader från den vänstra (första) tabellen som inte har matchande rader från en höger (andra) tabell.

Följande fråga förklarar det tydligare var DELETE-satsen använder LEFT JOIN för att ta bort rader från Bord 1 som inte har matchande rader i Tabell 2 :

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

I ovanstående fråga, lägg märke till att vi bara kommer att använda Tabell 1 med nyckelordet DELETE, inte båda som gjorde i INNER JOIN-satsen.

Exempel

Låt oss skapa en tabell ' kontakter ' och ' kunder ' i en databas som innehåller följande data:

Tabell: kontakter

de tidiga mukers
MySQL DELETE GÅ MED

Tabell: kunder

MySQL DELETE GÅ MED

Utför följande uttalande som tar bort kunden som inte har en mobiltelefon siffra:

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

Efter framgångsrik körning kommer det att ge följande meddelande:

MySQL DELETE GÅ MED

Kör nu följande fråga för att verifiera raderna som tagits bort.

 mysql> SELECT * FROM customers; 

Du kan se att raderna där kunden inte har mobilnumret raderas.

MySQL DELETE GÅ MED