Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie usuwające dane, jeśli nie ma do nich dowiązania
Forum PHP.pl > Forum > Bazy danych > MySQL
Insert
Witam,

Mam problem, nie wiem, czy jest możliwość rozwiązania go za pośrednictwem 1 zapytania (byłoby mi bardzo na rękę, bo to nie będzie php tylko jedno zapytanie wykonane z konsoli).

Jest 1 tabela ("zamówienia"), zawierająca rekordy zamówień.
ID, DANE_ID...

Jest 2 tabela ("dane"), zawierająca rekordy z danymi zamówienia (każdy input w formularzu zamówienia to osobny rekord, rekordy tworzą się dopiero wtedy, kiedy klient zdecyduje się na produkt i potwierdzi złożenie zamówienia).
ID, ZAMOWIENIE_ID...

Tabela "zamówienia" jest powiązana relacją jeden-do-wielu z tabelą "dane" (jedno zamówienie ma wiele danych).

Chciałbym teraz usunąć dane, które nie mają powiązania z zamówieniem (dane istnieją, jednak pole ZAMOWIENIE_ID nie odpowiada numerowi ID żadnego z rekordu tabeli "zamówienia" - klient złożył zamówienie, ale go nie zatwierdził, więc rekord w tabeli "zamówienia" nie utworzył się i dane z tego zamówienia nie są już potrzebne).

Z góry dziękuję za wszelkie wskazówki. Dodam tylko, że wiem, iż to nie jest dobrze zamodelowane, ale nie ja to robiłem.

Pozdrawiam serdecznie.
Smertius
  1. SELECT * FROM dane WHERE id NOT IN(SELECT id FROM zamowienia)


Zapytanie wybierz ci wszystkie rekordy z 'dane' których id nie znajduje się w 'zamowienia'. Ja chcesz je skasować, zmień selecta na delete.
Insert
Dzięki bardzo, dokładnie o to chodziło.

Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.