2011-02-11 6 views

Respuesta

19
select * from subjects where id not in (select subject.id from categories) 
+0

Gracias por su repetición . Muy fácil (: –

19

Sachin ya está prevista una respuesta correcta, pero usted puede hacerlo con sintaxis de unión, así:

SELECT 
    subjects.* 
FROM 
    subjects 
LEFT OUTER JOIN 
    categories 
ON 
    subjects.id = categories.subject_id 
WHERE 
    categories.subject_id IS NULL 
+0

Gracias por agregar eso de todos modos. La forma de Sachins parece mucho más fácil (tal vez más rápida) pero he elegido tu camino, porque la sugerencia de Sachins hizo que algunos problemas para implementar a través de registro activo re. –

+0

+1 para usar join. De nuevo, un caso clásico de Join versus subquery ... :) –

+0

Con MySQL, la sintaxis de unión casi siempre es igual (porque el planificador reescribió la subconsulta como unión) o más rápido. El planificador de consultas es tonto y toma malas decisiones para el uso del índice en las subconsultas con mucha más frecuencia. –

Cuestiones relacionadas