Interogarea DELETE este o sub-parte a limbajului de manipulare a datelor folosită pentru eliminarea rândurilor din tabele. Cum să ștergi înscrierea MySQL este o întrebare foarte populară în timpul interviurilor. Nu este un proces ușor să utilizați instrucțiunile delete join în MySQL. În această secțiune, vom descrie cum puteți șterge înregistrările din mai multe tabele folosind INNER JOIN sau LEFT JOIN în interogarea DELETE.
DELETE JOIN cu INNER JOIN
Interogarea Inner Join poate fi utilizată cu interogarea Delete pentru a elimina rândurile dintr-un tabel și rândurile care se potrivesc din celălalt tabel care îndeplinesc condiția specificată.
Sintaxă
Următoarele sunt sintaxa care poate fi utilizată pentru ștergerea rândurilor din mai mult de un tabel utilizând Inner Join .
DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition
Aici, ținta este un nume de tabel de unde dorim să ștergem rânduri prin potrivirea condiției specificate. Să presupunem că doriți să ștergeți rânduri din tabel T1 și T2 Unde student_id = 2 , atunci poate fi scris ca următoarea afirmație:
10 din 50
DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2;
În sintaxa de mai sus, tabelul țintă (T1 și T2) este scris între cuvintele cheie DELETE și FROM. Dacă omitem orice nume de tabel de acolo, atunci sterge declaratie elimină doar rânduri dintr-un singur tabel. Expresia scrisă cu PE cuvântul cheie este condiția care se potrivește cu rândurile din tabelele pe care urmează să le ștergeți.
Exemplu
Să presupunem că avem două mese elevi și contacte care contine urmatoarele date:
Tabel: elevi
Tabel: contacte
Executați următoarea interogare pentru a înțelege Șterge alăturarea cu Inner Join. Această instrucțiune șterge un rând care are același id în ambele tabele.
DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4;
După executarea cu succes, va da următorul mesaj:
Acum, rulați următoarea interogare pentru a verifica rândurile șterse cu succes.
mysql> SELECT * FROM students; mysql> SELECT * FROM contacts;
Puteți vedea că rândurile în care student_id=4 este șters.
DELETE JOIN cu LEFT JOIN
Am învățat deja clauza LEFT JOIN cu instrucțiunea SELECT care returnează toate rândurile din tabelul din stânga (primul) și rândurile care se potrivesc sau nu din alt tabel. În mod similar, putem folosi și clauza LEFT JOIN cu cuvântul cheie DELETE pentru ștergerea rândurilor din tabelul din stânga (primul) care nu are rânduri potrivite dintr-un tabel din dreapta (al doilea).
convenția de denumire a java
Următoarea interogare explică mai clar în cazul în care instrucțiunea DELETE folosește LEFT JOIN pentru ștergerea rândurilor din Tabelul 1 care nu are rânduri potrivite în Masa 2 :
DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL;
În interogarea de mai sus, observați că vom folosi numai Tabelul 1 cu cuvântul cheie DELETE, nu ambele așa cum a făcut în instrucțiunea INNER JOIN.
Exemplu
Să creăm un tabel' contacte ' și ' Clienți ' într-o bază de date care conține următoarele date:
Tabel: contacte
cum se utilizează mysql workbench
Tabel: clienți
Executați următoarea instrucțiune care elimină clientul care nu are a telefon mobil număr:
DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL;
După executarea cu succes, va da următorul mesaj:
Acum, rulați următoarea interogare pentru a verifica rândurile șterse cu succes.
mysql> SELECT * FROM customers;
Puteți vedea că rândurile în care clientul nu are numărul de telefon mobil sunt șterse.