Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/03/2009, 20: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: Inner join if?

Existen dos formas de manejar la cosa:
1. La más tosca: Agregar una categoróa cero (0) que tenga como descripción "NO CATEGORIZADO".
2. Resolverlo no con INNER JOIN sino con LEFT JOIN:
Código sql:
Ver original
  1. SELECT p.*, IFNULL(c.name,'Uncategorized') name  
  2. FROM productos p LEFT JOIN categorias c ON c.id = p.category_id
  3. WHERE a.user_id='Una Variable'
  4. ORDER BY p.created DESC ";

LEFT JOIN devuelve todos los valores validos de la primera tabla (izquierda), incluyendo NULL donde no existan coincidencias. Usando IFNULL() se puede hacer que NAME tenga un contenido alternativo en aquellos casos en que el producto tiene categoría 0.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)