2 tabele:
egzemplarze (id, ...)
użytkowników (id, item_id, ...)Usuwanie wszystkich rekordów z tabeli, które nie zostały pobrane z innej tabeli
Jak usunąć wszystkie zapisy w pozycjach elementy, które nie są wymienione od użytkowników?
2 tabele:
egzemplarze (id, ...)
użytkowników (id, item_id, ...)Usuwanie wszystkich rekordów z tabeli, które nie zostały pobrane z innej tabeli
Jak usunąć wszystkie zapisy w pozycjach elementy, które nie są wymienione od użytkowników?
Pamiętaj, że NOT IN może być naprawdę powolny. Czasami - co jest zaskakujące - szybciej jest zrobić coś takiego:
DELETE FROM items WHERE id IN
(SELECT id FROM items EXCEPT SELECT item_id FROM users)
DELETE FROM items WHERE id NOT IN (SELECT item_id FROM users)
(używa subquery aby zaznaczyć wszystkie item_ids
od users
a następnie usuwa rekordy z items
gdzie id
nie jest w wynikach tego podzapytania)
delete from items
where id not in (select item_id from users)
Jest to dobre w niektórych innych językach SQL, ale MySQL nie obsługuje opcji EXCEPT. – earl3s