Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] usuwanie rekordów, jeśli w drugiej tabeli nie ma rekordu o odpowiednim id, a dokladniej komentarzy pozostających po skaskowanych artykułach
ficiek
post 22.11.2011, 23:13:05
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 9.09.2011
Skąd: Kraków

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


Witam mam dwie tabele: comments i articles.
Rekordy w articles mają oczywiście id, natomiast komentarze about_id, które odpowiada odpowiednim id artykułów do których są przypisane.
Chcę w jednym zapytaniu mieć możliwość usunięcia wszystkich przestarzałych komentarzy, czyli takich których odpowiadające artykuły usunięto.

Chodzi mi o coś w stylu:
  1. DELETE FROM comments WHERE about_id NOT IN (SELECT id FROM articles)

Niestety nie wiem jak dokładnie to zapisać.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ficiek
post 9.12.2011, 20:51:23
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 1
Dołączył: 9.09.2011
Skąd: Kraków

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


Tak sobie przypomniałem o tym temacie.

Rozwiązanie które wykorzystałem:
  1. SELECT * FROM comments D WHERE NOT EXISTS (SELECT NULL FROM articles U WHERE D.about_id = U.id)


To jest tylko SELECT więc swobodnie można testować nie bojąc się, że coś nam zniknie.
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:03