ДЕЛЕТЕ упит је под-део језика за манипулацију подацима који се користи за уклањање редова из табела. Како избрисати придруживање МиСКЛ је веома популарно питање током интервјуа. Није лак процес користити изразе за спајање брисања у МиСКЛ-у. У овом одељку ћемо описати како можете да избришете записе из више табела помоћу ИННЕР ЈОИН или ЛЕФТ ЈОИН у упиту ДЕЛЕТЕ.
ИЗБРИШИ ПРИДРУЖЕЊЕ помоћу ИННЕР ЈОИН
Упит Иннер Јоин се може користити са упитом Делете за уклањање редова из једне табеле и одговарајућих редова из друге табеле који испуњавају наведени услов.
Синтакса
Следеће је синтакса која се може користити за брисање редова из више од једне табеле користећи Иннер Јоин.
DELETE target table FROM table1 INNER JOIN table2 ON table1.joining_column= table2.joining_column WHERE condition
Овде је циљ име табеле из које желимо да избришемо редове испуњавањем специфицираног услова. Претпоставимо да желите да избришете редове из табеле Т1 и Т2 где студент_ид = 2 , онда се може написати као следећа изјава:
стринг.субстринг јава
DELETE T1, T2 FROM T1 INNER JOIN T2 ON T1.student_id=T2.student.id WHERE T1.student_id=2;
У горњој синтакси, циљна табела (Т1 и Т2) је уписана између кључних речи ДЕЛЕТЕ и ФРОМ. Ако изоставимо било које име табеле одатле, онда избриши изјаву уклања само редове из једне табеле. Израз написан са НА кључна реч је услов који одговара редовима у табелама у којима ћете обрисати.
Пример
Претпоставимо да имамо два стола студенти и контакти који садржи следеће податке:
Табела: ученици
Табела: контакти
Извршите следећи упит да бисте разумели Делете Јоин са унутрашњим спајањем. Ова изјава брише ред који има исти ИД у обе табеле.
DELETE students, contacts FROM students INNER JOIN contacts ON students.student_id=contacts.college_id WHERE students.student_id = 4;
Након успешног извршења, он ће дати следећу поруку:
Сада покрените следећи упит да бисте потврдили да су редови успешно избрисани.
mysql> SELECT * FROM students; mysql> SELECT * FROM contacts;
Можете видети да су редови где је студент_ид=4 се брише.
ДЕЛЕТЕ ЈОИН са ЛЕФТ ЈОИН
Већ смо научили клаузулу ЛЕФТ ЈОИН са СЕЛЕЦТ наредбом која враћа све редове из леве (прве) табеле и одговарајуће или неподударне редове из друге табеле. Слично, такође можемо користити клаузулу ЛЕФТ ЈОИН са кључном речи ДЕЛЕТЕ за брисање редова из леве (прве) табеле који немају подударне редове из десне (друге) табеле.
шта је хасхсет јава
Следећи упит јасније објашњава где израз ДЕЛЕТЕ користи ЛЕФТ ЈОИН за брисање редова из Табела 1 која нема подударне редове у Табела2 :
DELETE Table1 FROM Table1 LEFT JOIN Table2 ON Table1.key = Table2.key WHERE Table2.key IS NULL;
У горњем упиту, приметите да ћемо користити само табелу 1 са кључном речју ДЕЛЕТЕ, а не обе као у изјави ИННЕР ЈОИН.
Пример
Хајде да направимо табелу ' контакти ' и ' купаца ' у бази података која садржи следеће податке:
Табела: контакти
како преузети иоутубе видео влц
Табела: купци
Извршите следећу наредбу која уклања купца који нема а мобилни телефон број:
DELETE customers FROM customers LEFT JOIN contacts ON customers.customer_id = contacts.contact_id WHERE cellphone IS NULL;
Након успешног извршења, он ће дати следећу поруку:
Сада покрените следећи упит да бисте потврдили да су редови успешно избрисани.
mysql> SELECT * FROM customers;
Можете видети да су редови у којима купац нема број мобилног телефона избрисани.