..


Linki sponsorowane

Usuń te tabele za pomocą JOIN

Artykuł napisany przez Max Bossi

W tym krótkim artykule pokażemy, jak można robić zapytania do usuwania (DELETE) wykorzystanie potencjału łączy, czyli tworzenia relacji między tabelami w MySQL.
W rzeczywistości już widzieliśmy, jak użyć JOIN w wyborze danych (SELECT) i aktualizowane (UPDATE), tutaj będziemy rozszerzać tylko to, co już się umie.

Aby lepiej poznać możliwości tej techniki powinna rozważyć, jak nasze przyzwyczajenia do przyjęcia konkretnego przypadku zastosowania.

Powiedzmy, że musimy pracować na bazie danych hipotetycznego magazynu składa się z następujących tabel (z którym opisujemy ich struktury):

  • półki
    • id (int)
    • opis (varchar)
  • półki
    • id (int)
    • scaffale_id (int)
    • opis (varchar)
  • produktów
    • id (int)
    • ripiano_id (int)
    • nazwa (varchar)
    • cena (float)
Teraz załóżmy, że masz potrzebę wyeliminowania produktów. Zwracamy się następujące trzy różne wyniki.

1) Załóżmy, że chcesz usunąć pojedynczy produkt, który znasz ID. W tym przypadku możesz po prostu uruchomić trywialne zapytanie:

 



 DELETE * FROM produkty WHERE id = 1;

 
2) To samo zapytanie, będzie używany, jeśli chcesz usunąć wszystkie produkty pakowane w danym półki:
 



 DELETE * FROM produkty WHERE ripiano_id = 1;

 
3) Ale jeśli chcesz usunąć wszystkie produkty w danej półce?
Proste zapytanie takich jak obserwowane wcześniej nie byłoby możliwe, ponieważ w "produkty" nie ma pola, które odnosi się do półki!

W rzeczywistości problem nie do pokonania! z trochę "sprawność w zakresie obsługi zapytań, w rzeczywistości przeszkodą jest łatwo obejść! W jaki sposób? z JOIN! Oto przykład:

 



 DELETE produktów .*







 Z produktów INNER JOIN półki







 ON = prodotti.ripiano_id ripiani.id







 GDZIE ripiani.scaffale_id = 1;



W ten sposób stworzyliśmy relacji między dwiema tabelami "produkty" i "półki" (na podstawie pola z JOIN "ripiano_id" tabeli mecze pierwszej identyfikator sekundę) w celu wykorzystania w polu "scaffale_id" tego " ostatni.

Na pierwszy rzut oka, być może, może wydawać się nieco skomplikowane ... jest całkiem proste. Chodzi o stworzenie logicznej relacji między dwiema tabelami, w celu wykorzystania informacji do eksploatacji pierwszy z drugim.

Gdzie, oprócz produktów, chcieliśmy, aby usunąć wszystkie półki półki odpowiadające danemu pututo używamy nieco innej zapytanie:

 



 DELETE produktów .*, półki .*







 Z produktów INNER JOIN półki







 ON = prodotti.ripiano_id ripiani.id







 GDZIE ripiani.scaffale_id = 1;



W istocie jest to zapytanie widok tuż nad tą tylko różnicą, że odwołanie ma wpływ nie tylko pól w tabeli "produkty":
 



 produktów .*

 
ale także tych z tabeli "półki":
 



 półki .*

 
W przypadku pytań lub wniosków o dopuszczenie zapraszam do postu na naszym forum .

W tej samej kategorii ...
E-Learning
MS Access (zaawansowane) MS Access (zaawansowane)
Dowiedz się, jak tworzyć i zarządzać bazami danych szybko i łatwo. Począwszy od 29 €.
MySQL (Kurs) MySQL (Kurs)
Zarządzanie bazą danych open-source. Od 39 €.
SQL i bazy danych (pole) SQL i bazy danych (pole)
Tworzenie i zarządzanie relacyjnymi bazami danych. Od 39 €.
Linki sponsorowane