Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/01/2011, 10:09
Avatar de el_gustavo
el_gustavo
 
Fecha de Ingreso: mayo-2009
Mensajes: 117
Antigüedad: 15 años
Puntos: 0
De acuerdo Consulta sql: select join devuelva algo si no hay resultados.

Buenas tardes/mañanas/noches.
Bueno, quizas el titulo explico poco y nada pero el tema es asi.
Tengo quizas lo clasico, una tabla con categorias y una tabla con productos.

La tabla categorias tiene nombre_categoria, id.
La tabla productos tiene id,nombre, categoria_id.
Lo que necesito hacer es extraer las categorias con la cantidad de productos que tiene cada una entonces hice asi.
Código MySQL:
Ver original
  1. SELECT categorias.id, categorias.nombre_categoria, prod.tot
  2.         FROM categorias
  3.         JOIN (
  4.  
  5.         SELECT
  6.         if(COUNT( productos.id )>0,COUNT( productos.id ),0) as tot, categoria_id
  7.         FROM productos
  8.         GROUP BY categorias_id
  9.         ) AS prod ON prod.categoria_id = categorias.id


El problema es que obviamente, me devuelve unicamente las categorias que tienen productos pero no asi las que no tienen productos.
Existe alguna forma tal que al listar las categorias las cuales no tengan productos.
Ej:
Tengo dos categorias, A y B y un producto que pertenece a la categoria A.
Esa consulta me devuelve:
categoria: A ,productos:1
y yo quiero que devuelva:
categoria: A ,productos:1
categoria: B,productos:0
Espero se entienda.

Muchas gracias por la ayuda

Última edición por el_gustavo; 12/01/2011 a las 10:15