Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/04/2010, 05:00
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Incluir en LEFT JOIN datos no existentes

El cruce de dos tablas con LEFT JOIN donde no haya concidencias entre la primera y la segunda tablas devuelve NULL sobre los registros de la tabla derecha que no coincidan con los de la izquierda.
Recuerda que NULL no es un valor, por lo que no sirve usar comparadores lógicos:
Código MySQL:
Ver original
  1. SELECT A.articulo, A.descripcion, IFNULL(E.existencia, 0) existencia
  2. FROM articulos A
  3. LEFT JOIN  existencias E ON A.articulo=E.articulo
  4. WHEN existencias.existencia IS NULL;

Uso la función IFNULL(columna, valor) para evitar que salga NULL sobre la columna, reemplazandolo por cero. También se puede usar COALESCE(), pero éste opera sobre una lista de valores, o bien IF(comparacion, verdadero, falso).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 22/04/2010 a las 05:56