..


Rėmėjų nuorodos

Pašalinti šias lenteles naudojant PRISIJUNGTI

Straipsnį parašė Max Bossi

Per šį trumpą straipsnį, mes pamatysime, kaip tai galima padaryti užklausų ištrinti (Delete) panaudojant prisijungia potencialą, ty, kurti ryšius tarp lentelių MySQL.
Iš tiesų jau matėme, kaip naudoti prisijungti prie duomenų atrankos (Pasirinkti) ir atnaujinamas (atnaujinta), čia mes tik pratęsti, kas jau buvo išmokta.

Norėdami geriau išmokti šią techniką potencialas turėtų apsvarstyti, kaip mūsų įprotis manyti, konkrečiu atveju naudoti.

Tarkime, kad turime dirbti nuo hipotetinio sandėlyje duomenų bazė susideda iš šių lentelių (kurios mes aprašome savo struktūras):

  • lentynos
    • ID (INT)
    • aprašymas (varchar)
  • lentynos
    • ID (INT)
    • scaffale_id (INT)
    • aprašymas (varchar)
  • produktai
    • ID (INT)
    • ripiano_id (INT)
    • pavadinimas (varchar)
    • kaina (float)
Dabar tarkime, jūs turite, kad reikia sunaikinti produktus. Mes apimti šiuos tris skirtingus rezultatus.

1) Tarkime, norite ištrinti vieną produktą, kad jūs žinote, ID. Šiuo atveju, galite tiesiog paleisti trivialus užklausą:

 



 DELETE * FROM produktų WHERE id = 1;

 
2) pati užklausa bus naudojama, jei norite ištrinti visus produktus sudėti į tam tikrą lentyna:
 



 DELETE * FROM produktų KUR ripiano_id = 1;

 
3) Bet jei norite ištrinti visus produktus per tam tikrą lentynos?
Paprasta užklausa, kaip antai matyti anksčiau nebūtų įmanoma, nes "produktų" nėra lauko, kuris reiškia lentynos!

Iš tikrųjų problema nėra neįveikiama! su šiek tiek "vikrumas tvarkant užklausas, iš tikrųjų, kliūtis yra lengvai apeiti! Kaip? su PRISIJUNK! Štai pavyzdys:

 



 DELETE produktų .*







 Iš produktų, INNER JOIN lentynos







 ON = prodotti.ripiano_id ripiani.id







 KUR ripiani.scaffale_id = 1;



Tokiu būdu mes sukūrėme tarp dviejų lentelių "produktų" ir "lentynos" (remiantis prisijungti "ripiano_id" stalo, kuris atitinka pirmąjį identifikatorius Antrajame lauke) santykius, siekiant išnaudoti srityje "scaffale_id" šios " paskutinis.

Iš pirmo žvilgsnio, ko gero, gali pasirodyti šiek tiek sudėtinga ... iš tiesų yra gana paprasta. Tai, kaip kurti loginis ryšys tarp dviejų lentelių, kad naudoti informaciją, dirbti antrą pirma.

Tais atvejais, kai, be to, produktų, mes norėjome pašalinti visus lentynos lentynos atitinkanti pateikta pututo mes naudojame šiek tiek kitokią užklausą:

 



 DELETE produktų .*, lentynos .*







 Iš produktų, INNER JOIN lentynos







 ON = prodotti.ripiano_id ripiani.id







 KUR ripiani.scaffale_id = 1;



Iš esmės tai yra užklausa peržiūrėti virš Vienintelis skirtumas yra tas, kad atšaukimas turės įtakos ne tik laukų lentelėje "produktus":
 



 produktų .*

 
bet ir lentelė "lentynos":
 



 lentynos .*

 
Jei turite klausimų ar prašymų aš kviečiu jus po mūsų forumuose .

Tos pačios kategorijos ...
E-mokymasis
MS Access (Advanced) MS Access (Advanced)
Sužinokite, kaip kurti ir valdyti duomenų bazes greitai ir lengvai. Nuo 29 €.
MySQL (kurso) MySQL (kurso)
Valdymas atviro kodo duomenų bazės. Nuo 39 €.
SQL ir duomenų bazės (kurso) SQL ir duomenų bazės (kurso)
Kurkite ir tvarkykite reliacinėse duomenų bazėse. Nuo 39 €.
Rėmėjų nuorodos