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

ayuda con count

Estas en el tema de ayuda con count en el foro de Mysql en Foros del Web. Hola, tengo estas tablas: Quiero sacar un conteo de todas las secciones incluso si no tienen coincidencia en la segunda tabla (si no la tienen, ...
  #1 (permalink)  
Antiguo 09/05/2010, 03:01
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 8 meses
Puntos: 18
ayuda con count

Hola, tengo estas tablas:


Quiero sacar un conteo de todas las secciones incluso si no tienen coincidencia en la segunda tabla (si no la tienen, que sea cero).
La teoría dice que con un LEFT JOIN debería salir, pero no sale. He probado con ésto:
Código MySQL:
Ver original
  1.     secciones.seccion
  2.     , secciones.id_seccion
  3.     , COUNT(*) AS cuantos
  4.     ubicacion_partners
  5.     LEFT JOIN  secciones
  6.         ON (secciones.id_seccion = ubicacion_partners.id_sec_subsecc)
  7. WHERE (ubicacion_partners.id_nivel =2)
  8. GROUP BY secciones.id_seccion;
Y sólo me salen las que tienen coincidencia (2 de 4 posibles):

SECCION--ID_SECCION--CUANTOS
COMPRA-VENTA--1--6
ALQUILERES--2--3

Y quisiera una salida como la siguiente:

SECCION--ID_SECCION--CUANTOS
COMPRA-VENTA--1--6
ALQUILERES--2--3
TRABAJOS--3--0
VARIOS--4--0

ACLARACIÓN: id_nivel no tiene nada que ver. si es 2, es que hay que buscar en la tabla secciones.

He probado ya con INNER JOIN, RIGHT JOIN, STRAIGHT_JOIN.

¿Podríais ayudarme, por favor? ¿Qué me estoy perdiendo?¿Será que es domingo por la mañana?

Gracias!!!
  #2 (permalink)  
Antiguo 09/05/2010, 05:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: ayuda con count

Prueba esto a ver si es lo que quieres:
SELECT secciones.seccion, secciones.id_seccion, IFNULL(COUNT(*),0) AS cuantos FROM secciones LEFT JOIN ubicacion_partners ON (secciones.id_seccion = ubicacion_partners.id_sec_subsecc) GROUP BY secciones.id_seccion;
  #3 (permalink)  
Antiguo 09/05/2010, 09:20
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 8 meses
Puntos: 18
Respuesta: ayuda con count

Nada, devuelve lo mismo. No exactamente lo mismo. Devuelve todas las secciones, pero en "cuantos" no devuelve 0, sino unos valores que no son reales.

He decidido hacerlo con dos consultas separadas, aunque sea más ineficiente.

Muchas gracias por la respuesta.
Un saludo.
  #4 (permalink)  
Antiguo 09/05/2010, 09:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: ayuda con count

Aunque tampoco lo he probado, tal vez esto te funcionaría.
SELECT secciones.seccion, secciones.id_seccion, (SUM(IF (ubicacion_partners.id_sec_subsecc is null, 0, 1))) AS cuantos FROM secciones LEFT JOIN ubicacion_partners ON (secciones.id_seccion = ubicacion_partners.id_sec_subsecc) GROUP BY secciones.id_seccion;
  #5 (permalink)  
Antiguo 09/05/2010, 09:39
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 8 meses
Puntos: 18
Respuesta: ayuda con count

Perfecto!!! Gracias Jurena!!

Etiquetas: count
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 05:59.