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

[SOLUCIONADO] Contando registros...

Estas en el tema de Contando registros... en el foro de Mysql en Foros del Web. No se si es muy complejo pero mi situación es la siguiente. Tengo dos tablas: TABLA Secciones : Campos idseccion, nombre_seccion Esta tabla contiene 5 ...
  #1 (permalink)  
Antiguo 14/03/2013, 11:05
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 7 meses
Puntos: 1
Contando registros...

No se si es muy complejo pero mi situación es la siguiente. Tengo dos tablas:

TABLA Secciones:
Campos idseccion, nombre_seccion

Esta tabla contiene 5 registros donde idseccion es:
A
B
C
D
E

TABLA Productos:
Campos idproducto, idseccion, nombre_producto

Esta tabla contiene 10 productos relacionados con las secciones:
A - Producto1
A - Producto2
A - Producto3
D - Producto4
D - Producto5
E - Producto6
E - Producto7
E - Producto8
E - Producto9
E - Producto10

Consigo que me cuente cuantos productos contiene cada sección pero sólo me muestra esto:

A - 3
D - 2
E - 5

Y quiero que me muestre todos los registros contados y si no hay que cuente 0, es decir esto:
A - 3
B - 0
C - 0
D - 2
E - 5

Agradezco su ayuda. un saludo!
  #2 (permalink)  
Antiguo 14/03/2013, 11:11
Avatar de 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: Contando registros...

Código MySQL:
Ver original
  1. SELECT S.idseccion, COUNT( DISTINCT P.idproducto) totalProductos
  2. FROM seccion S LEFT JOIN productos P ON S.idseccion = P.idseccion
  3. GROUP BY S.idseccion;
Es una consulta que puedes encontrar en cualquier tutorial... e incluso se ha preguntado acá infinidad de veces.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/03/2013, 11:17
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Contando registros...

Hola suudobal:

Es recomendable que siempre coloques las consultas que intentaste hacer, para indicarte donde está el error, mucho ojo con eso. Este tipo de consultas en realidad es muy simple, me sorprende que no hayas encontrado con la ayuda de SAN GOOGLE algún ejemplo que te permitiera dar con algo de ayuda, pero bueno, sería algo así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM secciones;
  2. +-----------+----------------+
  3. | idseccion | nombre_seccion |
  4. +-----------+----------------+
  5. | A         | Seccion A      |
  6. | B         | Seccion B      |
  7. | C         | Seccion C      |
  8. | D         | Seccion D      |
  9. | E         | Seccion E      |
  10. +-----------+----------------+
  11. 5 rows in set (0.00 sec)
  12.  
  13. mysql> SELECT * FROM Productos;
  14. +------------+-----------+-----------------+
  15. | idproducto | idseccion | nombre_producto |
  16. +------------+-----------+-----------------+
  17. |          1 | A         | Producto1       |
  18. |          2 | A         | Producto2       |
  19. |          3 | A         | Producto3       |
  20. |          4 | D         | Producto4       |
  21. |          5 | D         | Producto5       |
  22. |          6 | E         | Producto6       |
  23. |          7 | E         | Producto7       |
  24. |          8 | E         | Producto8       |
  25. |          9 | E         | Producto9       |
  26. |         10 | E         | Producto10      |
  27. +------------+-----------+-----------------+
  28. 10 rows in set (0.00 sec)
  29.  
  30. mysql> SELECT S.idseccion, COUNT(P.idseccion)
  31.     -> FROM Secciones S
  32.     -> LEFT JOIN Productos P ON S.idseccion = P.idseccion
  33.     -> GROUP BY S.idSeccion;
  34. +-----------+--------------------+
  35. | idseccion | COUNT(P.idseccion) |
  36. +-----------+--------------------+
  37. | A         |                  3 |
  38. | B         |                  0 |
  39. | C         |                  0 |
  40. | D         |                  2 |
  41. | E         |                  5 |
  42. +-----------+--------------------+
  43. 5 rows in set (0.00 sec)

Dale un vistazo y nos comentas.

Cita:
EDITADO: Como siempre gnzsoloyo un paso adelante jejejeje. Saludos!!!
Saludos
Leo
  #4 (permalink)  
Antiguo 14/03/2013, 11:24
Avatar de 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: Contando registros...

Naaaa...
También tu te adelantaste en otro thread...

Siempre andamos cerca.



__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 14/03/2013, 11:43
 
Fecha de Ingreso: septiembre-2007
Mensajes: 106
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Contando registros...

Os aseguro que siempre miro pero debo ser bastante torpe en este caso... por lo que veo no es tan complicado, os gradezco mucho la ayuda a ambos. Todo perfecto, como no!

Un saludo

Etiquetas: campos, registros, tabla
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 10:50.