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

Problema con un count en join

Estas en el tema de Problema con un count en join en el foro de Mysql en Foros del Web. Buenas, estoy programando un sistema de foros.. y me topé con un inconveniente en lo que sería la portada :P Código: SELECT *,count(tema.te_id) as temas ...
  #1 (permalink)  
Antiguo 02/11/2010, 18:02
Avatar de nicolaslt  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 119
Antigüedad: 15 años
Puntos: 5
Exclamación Problema con un count en join

Buenas, estoy programando un sistema de foros.. y me topé con un inconveniente en lo que sería la portada :P

Código:
SELECT *,count(tema.te_id) as temas FROM pref_subforos as sub
left join pref_categorias as cat ON cat.cat_sub=sub.sub_id
left join pref_temas as tema on tema.te_categoria=cat.cat_id
ORDER BY sub_posicion,cat_posicion ASC
el tema es que el count... en vez de contar los temas que tiene cada categoría.. cuenta los temas en total y me selecciona un subforo y categoría sola.. u.u

ni idea... xD

bueno, gracias desde ya

saludos
  #2 (permalink)  
Antiguo 02/11/2010, 19:10
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: Problema con un count en join

Estás ordenando, pero no estás agrupando los conjuntos, por lo que en realidad el COUNT() está actuando como totalizador y no dando subtotales.
Por otro lado, el uso de LEFT JOIN puede darte resultados erróneos, porque LEFT implica que opere sobre la primera tabla, haya o no coincidencias con la segunda. Esto puede no devolver los datos que esperas.
Por ejemplo:
Código MySQL:
Ver original
  1.     *,
  2.     count(tema.te_id) temas
  3. FROM pref_subforos sub left join pref_categorias cat
  4.     ON sub.sub_id = cat.cat_sub
  5.     LEFT JOIN pref_temas tema ON tema.te_categoria=cat.cat_id
  6. GROUP BY sub.sub_id;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 02/11/2010 a las 19:17
  #3 (permalink)  
Antiguo 02/11/2010, 19:26
Avatar de nicolaslt  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 119
Antigüedad: 15 años
Puntos: 5
Respuesta: Problema con un count en join

Tema solucionado.

Muchas gracias gnzsoloyo

Saludos! :)

Etiquetas: count, join
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 16:18.