posiadam tabelę z prezentacjami, oraz inną tabelę ze zdjęciami do prezentacji.
dużo prezentacji wygasło, a ich zdjęcia zaśmiecają mi tabelę zdjęć tworząc zestaw powyżej pół miliona rekordów.
Chciałbym odchudzić bazę, jednak mam duży problem. Napisałem sobie skrypt, który pobiera z tabeli prezentacje ID prezentacji których status to zero i usuwa row z tabeli zdjęcia. Jednak skrypt działa tak wolno, że musiałbym poczekać z miesiąc aż skonczy się to robić.
Zastanawiam się nad napisaniem jednego zapytania sql które:
1)z tabeli prezentacje pobiera id_prezentacje gdzie status = 0
2) z tabeli zdjecia usówa rekordy w których id_prezentacje = pobrane ID
podejmowałem próby z zapytaniami zagnieżdżonymi jednak nie udało mi się rozwiązać problemu.
przykład zapytania które testowałem:
UPDATE `zdjecia` SET STATUS=0 WHERE `id_prezentacja` = (SELECT `id_prezentacja` FROM `prezentacja` WHERE STATUS=0)
zgłasza mi błąd
- Subquery returns more than 1 row
Nie wiem naprawdę jak to napisać, i co więcej, czy przy takiej ilosci rekordów ( prezentacje = 300 000, zdjecia = 500 000 ) da się to zrobić 1 zapytaniem
Uprzejmie proszę o pomoc
PS. urządza mnie jedno z dwóch rozwiązań, update zdjęcia z nieaktywnej prezentacji i oznaczenie jego status=0 LUB usunięcie zdjęć z nieaktywnych prezentacji
