Ver Mensaje Individual
  #9 (permalink)  
Antiguo 14/06/2013, 04:52
Gedeon
 
Fecha de Ingreso: agosto-2003
Mensajes: 174
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Mostrar registros no correspondidos

Cita:
Una cosa que te voy a hacer notar es que lo que te ha dado Gedeon, es básicamente lo mismo que te doy yo, con una diferencia: Lo que te propone Gedeon no produce resultados, porque en un LEFT JOIN el valor devuelto en la segunda tabla no es cero. Es NULL.

Y NULL no es un cero. NULL no es un dato evaluable con operadores lógicos.
Tienes razón.

En lo del null también. De puro obvio lo puse sin pensar y esa consulta no dará resultados porque en este caso si el empleado no tiene departamento su id no será cero sino null. Por esta razón no habría que poner la condición de si id es cero sino de si id es null. Yo estaba mas interesado en explicar lo del left y el right y no pensé en lo otro. Disculpas.

Código:
SELECT * FROM empleados a
    LEFT JOIN departamentos b on a.id_departamento=b.id
    WHERE isnull(b.id)
Y de hecho como para relacionarlas a.id_departamento tiene que ser igual a b.id y además buscamos los que b.id sea null basta con mirar a.id_departamento

Código:
select * from empleados where isnull(id_departamento)
Total si de la tabla departamentos no quieres sacar nada en ese caso porque no hay nada.