..


Sponsorētās saites

Dzēst šo tabulu, izmantojot JOIN

Raksts raksta Max Bossi

Šajā īss raksts mēs redzēsim, kā tas ir iespējams veikt vaicājumus izdzēst (DELETE) izmantojot visus iespējamos savienojumus, ti, veidojot attiecības starp tabulām MySQL.
Patiesībā mēs jau esam redzējuši, kā izmantot JOIN, izvēloties datus (SELECT) un tiek atjaunināts (UPDATE), šeit mēs tikai paplašināt, kas jau ir iemācījušies.

Lai labāk uzzinātu potenciālu šo metodi, būtu jāapsver, kā mūsu paradumu, lai uzņemtos konkrētu izmantošanas gadījumā.

Pieņemsim, ka mums ir jāstrādā ar datubāzi hipotētisku noliktavas sastāv no šādām tabulām (no kuriem mēs aprakstītu savas struktūras):

  • plaukti
    • id (int)
    • apraksts (varchar)
  • plaukti
    • id (int)
    • scaffale_id (int)
    • apraksts (varchar)
  • produkti
    • id (int)
    • ripiano_id (int)
    • nosaukums (varchar)
    • cena (float)
Tagad pieņemsim, ka jums ir nepieciešams iznīcināt produktus. Mēs risināt šos trīs atšķirīgus rezultātus.

1) Pieņemsim, vēlaties izdzēst vienu produktu, ka jūs zināt ID. Šajā gadījumā jūs varat palaist triviāls vaicājumu:

 



 DELETE * FROM produkti WHERE id = 1;

 
2) pašu vaicājumu izmanto, ja vēlaties izdzēst visus produktus iepako konkrētā plauktu:
 



 DELETE * FROM produkti WHERE ripiano_id = 1;

 
3) Bet, ja jūs vēlaties izdzēst visus produktus dotajā plaukta?
Vienkāršu vaicājumu piemēram, kas novēroti iepriekš nebūtu iespējama, jo "produkti" nepastāv lauks, kas attiecas uz plaukta!

Patiesībā problēma nav neatrisināma! ar mazliet "veiklību, risinot jautājumus, patiesībā, šķērslis ir viegli apiet! Kā? ar JOIN! Lūk, piemērs:

 



 DELETE produktus .*







 No produktiem, INNER JOIN plaukti







 ON = prodotti.ripiano_id ripiani.id







 KUR ripiani.scaffale_id = 1;



To darot, mēs izveidojām saistība starp divām tabulām, "ražojumi" un "plauktiem" (pamatojoties uz lauka JOIN "ripiano_id" tabula, kas atbilst pirmā identifikators sekundi), lai izmantotu laukā "scaffale_id" Šā " pēdējā.

No pirmā acu uzmetiena, iespējams, var šķist mazliet sarežģīta ... faktiski ir diezgan vienkārši. Tā ir spēja radīt loģisku saikni starp divām tabulām, lai izmantotu informāciju, darboties pirmā uz otro.

Ja papildus produktus, mēs vēlējāmies, lai novērstu visas plaukti plauktu, kas atbilst konkrētā pututo mēs izmantojam mazliet atšķirīgu vaicājumu:

 



 DELETE produkti, plaukti .* .*







 No produktiem, INNER JOIN plaukti







 ON = prodotti.ripiano_id ripiani.id







 KUR ripiani.scaffale_id = 1;



Savā būtībā tā ir vaicājums apskatītu tikai virs vienīgā atšķirība ir, ka atcelšana ietekmēs ne tikai laukus tabulā "ražojumi":
 



 produktus .*

 
bet arī no tabulas "plaukts":
 



 plaukti .*

 
Ja rodas jautājumi vai lūgumi aicinu, lai jūs post par mūsu forumos .

Šajā pašā kategorijā ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Uzziniet, kā izveidot un pārvaldīt datubāzes ātri un viegli. Sākot ar 29 €.
MySQL (Kurss) MySQL (Kurss)
Vadība ir atvērtā koda datu bāzi. Sākot no € 39.
SQL un datu bāzes (Course) SQL un datu bāzes (Course)
Izveidot un pārvaldīt relāciju datu bāzēm. Sākot no € 39.
Sponsorētās saites