Gruchol
13.02.2015, 14:41:35
Witam,
Czy jest możliwość stworzenia takiego zapytania które usunie wszystkie rekordy z tabeli items (po owner_id) jeżeli w user_data nie istnieje user_id o owner_id z items ?
Chodzi mi o to, że wyczyściłem tabelę z użytkownikami jednak do każdego użytkownika były przypisane przedmioty które znajdują się w innej tabeli i chciałbym aby te przedmioty się usunęły jeżeli gracz o danym id nie istnieje.
Jak takie zapytanie miało by wyglądać ?
kartin
13.02.2015, 15:00:10
Jak najbardziej istnieje taka możliwość. Możesz w
WHERE użyć np.
NOT IN i podzapytanie wyszukujące wszystkie
user_id z tabeli
user_data.
Aby nie trzeba było ręcznie usuwać takich danych w przyszłości, używaj powiązań pomiędzy tabelami i
ON DELETE CASCADE.
Pyton_000
13.02.2015, 15:01:32
DELETE items FROM items i LEFT JOIN users u ON(u.id = i.user_id) WHERE u.id IS NULL
Coś w tym stylu.
Oczywiście backup zalecany