2010-06-19 27 views

Respuesta

10

Tenga en cuenta que NO IN puede ser realmente lento. A veces, sorprendentemente, es más rápido hacer algo como esto:

DELETE FROM items WHERE id IN 
(SELECT id FROM items EXCEPT SELECT item_id FROM users) 
+0

Esto es bueno en algunos otros lenguajes de SQL, pero MySQL no admite EXCEPTO. – earl3s

5
DELETE FROM items WHERE id NOT IN (SELECT item_id FROM users) 

(utiliza un subquery para seleccionar todos los item_ids de users y luego borra los registros de items donde id no se encuentra en los resultados de la subconsulta)

2
delete from items 
where id not in (select item_id from users) 
Cuestiones relacionadas