Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Oczyszczanie bazy danych
Forum PHP.pl > Forum > Przedszkole
miccom
Cześć smile.gif

Poszukuję rozwiązania smile.gif

Mam dwie tabele: user i units
w tabeli user mam rekord id, a w tabeli units mam rekord userID smile.gif
Proste.

I chciałbym usunąć wszystkie rekordy z tabeli units które nie mają swojego odpowiednika userID w tabeli user.

Jak skonstruować zapytanie do bazy danych aby usunąć rekordy bez pary?
Będę wdzięczny za pomoc.
SmokAnalog
Możesz użyć EXISTS:

  1. DELETE
  2. FROM `units`
  3. WHERE NOT EXISTS
  4. ( SELECT 1
  5. FROM `user`
  6. WHERE `id` = `units`.`userID` );


A tak na przyszłość, to ustaw sobie klucz obcy smile.gif
b4rt3kk
  1. DELETE FROM units WHERE userID NOT IN (SELECT id FROM users);
Pyton_000
  1. DELETE us FROM units us LEFT JOIN users u ON users.id = units.userID WHERE user.id IS NULL;


Coś w ten deseń.
miccom
Heh, trzech moich najlepszych guru programowania się odezwało...
I który kod wybrać?
Ot i zadanie smile.gif
Pyton_000
Wybież @nospor'a wink.gif
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.