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

[SOLUCIONADO] ¿Se puede hacer count de una tabla y a la ver extraer datos de tres tablas?

Estas en el tema de ¿Se puede hacer count de una tabla y a la ver extraer datos de tres tablas? en el foro de Mysql en Foros del Web. El problema es el siguiente. Tengo tres tablas: Categories, subcategories y post. Estoy creando una página donde quiero mostrar todas las categorías, a la vez ...
  #1 (permalink)  
Antiguo 18/03/2014, 17:28
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
¿Se puede hacer count de una tabla y a la ver extraer datos de tres tablas?

El problema es el siguiente.

Tengo tres tablas:

Categories, subcategories y post.

Estoy creando una página donde quiero mostrar todas las categorías, a la vez sus subcategorías y los posts de las subcategorías.

El usuario primero ver las categorías, pasa el ratón por encima y le aparecen las subcategorías.

Si hace clic sobre subcategorías podrá ver todos los post paginados referentes a la subcategoría.

El problema lo tengo con el count(), ya que leyendo el manual de mysql, no me quedó claro cómo debo hacer para, en una misma consulta, seleccionar todos las categorías, subcategorías relacionadas con categorías y contar los posts totales para mostrarlos en un numerito.

No tengo claro si puedo (y cómo se haría) utilizar count a la vez que inner join.
__________________
Ayúdame a hacerlo por mi mismo.
  #2 (permalink)  
Antiguo 18/03/2014, 20:08
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: ¿Se puede hacer count de una tabla y a la ver extraer datos de tres tablas

Finalmente pude resolverlo yo solo con las dos siguientes posibles consultas

Código SQL:
Ver original
  1. /*En caso de que se quieran todos los datos de las tres tablas y además count() de dos de ellas, lo hice así*/
  2.  
  3. SELECT *, COUNT(S.idsubcategorie), COUNT(P.idpost) FROM categories C, subcategories S, posts P GROUP BY S.idsubcategorie

Código SQL:
Ver original
  1. /*En cambio, si solo se quieren obtener los datos de una de las tablas + count() de dos de ellas, entonces solo hay que especificar las columnas, así*/
  2.  
  3. SELECT C.idcategorie,C.iduser,C.categorie, COUNT(S.idsubcategorie), COUNT(P.idpost) FROM categories C, subcategories S, posts P GROUP BY S.idsubcategorie

Lo dejo para la posteridad :D

Saludos!
__________________
Ayúdame a hacerlo por mi mismo.

Última edición por guardarmicorreo; 18/03/2014 a las 20:32
  #3 (permalink)  
Antiguo 18/03/2014, 20:52
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: ¿Se puede hacer count de una tabla y a la ver extraer datos de tres tablas

Bueno, me he precipitado.

Cuando quiero que solo devuelva el numero de entradas en subcategories y posts veo que los duplica y triplica según el group by :S

¿Alguien tiene idea de cómo solucionar esto sin hacer multi querys?
__________________
Ayúdame a hacerlo por mi mismo.

Etiquetas: count, join, sql, tabla, tres
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 15:05.