Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Query usando Count() para mostrar categorias y cantidad de registros en esa categoria

Estas en el tema de Query usando Count() para mostrar categorias y cantidad de registros en esa categoria en el foro de Mysql en Foros del Web. hola a todos, Les voy a explicar lo que estoy haciendo sin poner ningun tipo de codigo ya que estoy en cero, (buscando por un ...
  #1 (permalink)  
Antiguo 04/02/2009, 19:15
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 8 meses
Puntos: 0
Query usando Count() para mostrar categorias y cantidad de registros en esa categoria

hola a todos,

Les voy a explicar lo que estoy haciendo sin poner ningun tipo de codigo ya que estoy en cero, (buscando por un alma caritativa que me ayude ).

Yo tengo un directory, bueno en ese directorio tengo categorias, son 38 categorias las cuales estan en un campo llamado "type_biz" ahora bien, asociado a esas categorias estan los registros que necesito leer para formar una lista de las categorias con la cantidad (en numero) de registros asociados a ella. Son esos tipicos directorios con categorias, por ejemplo:

Apartamentos (5)
Alquileres (10)
Casas (2)
Duplex (5)
Pentahouse (0)

y asi sucesivamente...

Como ven, se esta leyendo las categoria y la cantidad de registros en ella, yo estoy testiando esta consulta.

Código PHP:
SELECT type_bizCount( * ) AS num_categ
FROM directory 
GROUP BY type_biz 
me funciona, pero el detalle esta en que solo me lee las categorias que tiene datos, pero las que no tienen datos ? no me las lee, pero necesito mostrarlas.

Alguno de ustedes ha trabajado con esto o tendra un codigo que me ayude a resolver esto ?

Gracias de antemanos.
  #2 (permalink)  
Antiguo 05/02/2009, 00:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Query usando Count() para mostrar categorias y cantidad de registros en es

SELECT tablacategorias.camponombrecategoria, IFNULL(Count(directory. type_biz ),0) AS num_categ
FROM tablacategorias LEFT JOIN directory on tablacategorias.nombrecampocategorias=directory.ty pe_biz
GROUP BY directory.type_biz
esta consulta respondería a las siguientes tablas:
tablacategorias
nombrecategoria

directory
dato|type_biz

y relacionadas por nombrecategoria (PK) y type_biz (FK)

Pero sería mejor una estructura como esta:
tablacategorias
idcategoria(PK)|nombrecategoria

directory
iddirectory|dato|refidcategoria (FK)

la consulta sería entonces así:
SELECT tablacategorias.nombrecategoria, IFNULL(Count(directory. refidcategoria),0) AS num_categ
FROM tablacategorias LEFT JOIN directory on categorias.idcategoria=directory.refidcategoria
GROUP BY directory.refidcategoria

Última edición por jurena; 05/02/2009 a las 01:33
  #3 (permalink)  
Antiguo 05/02/2009, 09:04
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Query usando Count() para mostrar categorias y cantidad de registros en es

Gracias Jurena por la respuesta, muy amable.

Solamente un detalle. Que en la consulta no me devuelve todas las categorias, solamente las categorias que tiene datos, aqui le dejo una imagen de la consulta y los valores devuelto http://www.latinpa.com/files_variado...categories.jpg

En la tabla category hay 38 datos (categorias) pero en la consulta solo me devuelve los que tienen relacion o que estan en la tabla directory, el detalle esta en que aunque no tengan datos, debo mostrar esas categorias aunque sea con valor cero (0).


La diferencia de esta consulta que usted me dio con la que yo usaba
SELECT type_biz, Count( * ) AS num_categ
FROM directory
GROUP BY type_biz

es que con la suya obtengo el primer valor aunque sea cero, en este caso "Airlines" pero no los demas que contienen valor cero..

Le agradesco cualquier ayuda..
  #4 (permalink)  
Antiguo 05/02/2009, 09:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Query usando Count() para mostrar categorias y cantidad de registros en es

saymon
mira que la tabla de la que quieres que aparezcan todos los datos esté tras el FROM y la otra tras el LEFT JOIN.

Si sigues teniendo problemaS, ponnos los campos de las tablas y te sugeriremos la consulta.
  #5 (permalink)  
Antiguo 05/02/2009, 17:04
Avatar de saymon  
Fecha de Ingreso: septiembre-2003
Ubicación: Panama
Mensajes: 318
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Query usando Count() para mostrar categorias y cantidad de registros en es

Jurena, Gracias por tu ayuda, la consulta me quedo excelente y ya tengo el script online funcionando.

Solo que la consulta quedo de este modo...

SELECT category.category_name, IFNULL( Count( directory.type_biz ) , 0 ) AS num_categ
FROM category
LEFT JOIN directory ON category.category_name = directory.type_biz
GROUP BY category.category_name

la coloco para aquellos que en futuro se encuetren con este thread y esa eso por lo qye buscan,

gracias nuevamente.

saludos foristas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.