Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/08/2014, 11:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Obtener registros de una tabla siempre y cuando no exista en otra tabla

En MYSQL, el NULL no se usa con operadores lógicos porque no es un dato, es un estado. Por consecuencia no puede ser ni igual ni distinto a algo. Es NULL o no lo es, pero nada más.
Por otro lado INNER JOIN requiere que obligatoriamente haya registros que se puedan relacionar, para devolver algo. En tu query estás buscando lo que no coincide, cosas que INNER JOIN no devolverá jamás. En su lugar debes usar LEFT o RIGHT JOIN.
Además, te conviene usar alias para evitarte complicar las consultas.

Código MySQL:
Ver original
  1. SELECT A.*
  2. FROM Actividades A LEFT JOIN DetalleActividad DA ON A.id_actividad = DA.id_actividad
  3. WHERE DA.id_actividad IS NULL;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)