Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skomplikowane zapytanie do bazy.
Gruchol
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

Ostrzeżenie: (0%)
-----


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ć ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
kartin
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kartin 13.02.2015, 15:21:59


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
Pyton_000
post
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


  1. 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 wink.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 10:18