..


Sponzorované odkazy

Odstranit tyto tabulky pomocí JOIN

Článek napsal Max Bossi

V tomto krátkém článku si ukážeme, jak je možné, aby se dotazy k odstranění (DELETE) využívání možností spojení, tj. vytváření vztahů mezi tabulkami v MySQL.
Ve skutečnosti jsme již viděli, jak používat zapojit se do výběru dat (SELECT) a jsou aktualizovány (UPDATE), zde se vztahuje pouze to, co již naučili.

Lépe poznat potenciál této techniky by měla zvážit, jak náš zvyk přijmout konkrétní případ použití.

Řekněme, že musíme pracovat na databázi hypotetické skladu se skládá z následujících tabulek (které si popíšeme jejich konstrukcí):

  • police
    • id (int)
    • Popis (varchar)
  • police
    • id (int)
    • scaffale_id (int)
    • Popis (varchar)
  • produkty
    • id (int)
    • ripiano_id (int)
    • Název (varchar)
    • Cena (float)
Nyní předpokládejme, že máte třeba odstranit produkty. My zaměřit na tyto tři různé výsledky.

1) Předpokládejme, že chcete odstranit jeden výrobek, který znáte ID. V tomto případě stačí spustit triviální dotaz:

 



 DELETE * FROM produkty WHERE id = 1;

 
2) stejný dotaz bude použita, pokud chcete odstranit všechny výrobky balené do dané police:
 



 DELETE * FROM produktů Pokud ripiano_id = 1;

 
3) Ale pokud chcete odstranit všechny produkty v dané police?
Jednoduchý dotaz takový jako ti viděný dříve by nebylo možné, protože v "produkty", není pole, které odkazuje na polici!

Ve skutečnosti problém není nepřekonatelný! s trochou obratnosti při manipulaci s dotazy, ve skutečnosti je překážkou jednoduše obejít! Jak? se přidat! Zde je příklad:

 



 DELETE produkty .*







 Z produktů INNER JOIN police







 ON = prodotti.ripiano_id ripiani.id







 KDE ripiani.scaffale_id = 1;



Přitom jsme si vytvořili vztah mezi "produkty" dva stoly a "police" (založený na poli JOIN "ripiano_id" Tabulka, která odpovídá první identifikátor druhé), s cílem využít pole "scaffale_id" tohoto " poslední.

Na první pohled se možná může zdát trochu složitější ... je vlastně docela jednoduchá. Jde o to, vytvořit logický vztah mezi dvěma tabulkami, aby bylo možné používat informace k provozu první sekundy.

V případě, kromě výrobků, jsme chtěli odstranit všechny police police odpovídající danému pututo používáme trochu jiný dotaz:

 



 DELETE produktů .*, regály .*







 Z produktů INNER JOIN police







 ON = prodotti.ripiano_id ripiani.id







 KDE ripiani.scaffale_id = 1;



V podstatě se jedná o dotaz zobrazit pouze nad jediným rozdílem je, že zrušení bude mít vliv nejen na pole v tabulce "produkty":
 



 výrobky .*

 
ale i ti tabulka "police":
 



 police .*

 
V případě dotazů nebo žádosti Zvu vás na příspěvek na naše fórum .

Ve stejné kategorii ...
E-Learning
MS Access (Advanced) MS Access (Advanced)
Naučte se vytvářet a spravovat databáze snadno a rychle. Od 29 €.
MySQL (kurz) MySQL (kurz)
Správa open-source databáze. Od 39 €.
SQL a databází (kurz) SQL a databází (kurz)
Vytváření a správa relační databáze. Od 39 €.
Sponzorované odkazy