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

[SOLUCIONADO] problema cont() de tabla relacionada

Estas en el tema de problema cont() de tabla relacionada en el foro de Mysql en Foros del Web. Buenas!! Llevo unos dias rompiendome la cabeza y buscando pero no encuentro solucion a mi problema. Me explico Dispongo de dos tablas noticias { idnoticia ...
  #1 (permalink)  
Antiguo 22/02/2013, 15:11
 
Fecha de Ingreso: marzo-2012
Ubicación: ciudad real
Mensajes: 62
Antigüedad: 12 años, 1 mes
Puntos: 3
problema cont() de tabla relacionada

Buenas!! Llevo unos dias rompiendome la cabeza y buscando pero no encuentro solucion a mi problema. Me explico

Dispongo de dos tablas

noticias {idnoticia, titulo, resumen...}
comentarios_noticias {id, idnoticia, texto...}

Me gustaria seleccionar (en una sola consulta) todas las noticias con el numero de comentarios de estas.

Googleando encontre esta opcion:

Código:
SELECT titulo, COUNT( `c`.`idnoticia` ) AS `cuenta`
FROM `noticias_articulo`
LEFT JOIN `comentarios_noticias` AS `c` ON `c`.`idnoticia` = `noticias_articulo`.`idnoticia`
GROUP BY `c`.`idnoticia`
ORDER BY `cuenta` ASC
Tengo decenas de noticias que no tienen comentarios, sin embargo solo me muestra una noticia con 0 comentarios y todas las que tienen 1 o mas comentarios.
¿como podria seleccionar todas las noticias, poniendo a 0 cuenta, de las que no tengan registros en comentarios_noticias?

Saludos y muchas gracias de antemano!

PD. Disculpad si es algo ya comentado, tras buscar no encontre la manera de hacerlo tal como quiero.
  #2 (permalink)  
Antiguo 22/02/2013, 16:16
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 10 meses
Puntos: 42
Respuesta: problema cont() de tabla relacionada

Hola duodingo,

Trata con una sentencia como:

Código MySQL:
Ver original
  1.     `n`.`titulo`,
  2.     COUNT(`cn`.`idnoticia`) `cantidad_comentarios`
  3. FROM `noticias` `n`
  4.     LEFT JOIN `comentarios_noticias` `cn` ON `n`.`idnoticia` = `cn`.`idnoticia`
  5. GROUP BY `n`.`idnoticia`
  6. ORDER BY `cantidad_comentarios` DESC;
El ejemplo completo en sqlfiddle.com

Espero te sea útil.
  #3 (permalink)  
Antiguo 22/02/2013, 16:22
 
Fecha de Ingreso: marzo-2012
Ubicación: ciudad real
Mensajes: 62
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: problema cont() de tabla relacionada

vaya, perfecto, ahora si funciona bien. La mirare detenidamente a ver cual era el error, muchisimas gracias por contestar y ademas super rapido ^^

Saludos!
  #4 (permalink)  
Antiguo 22/02/2013, 16:46
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 12 años, 10 meses
Puntos: 42
Respuesta: problema cont() de tabla relacionada

Hola duodingo,

La sentencia ajustada un poco más al estándar:

Código MySQL:
Ver original
  1.     `n`.`titulo`,
  2.     COUNT(`cn`.`idnoticia`) `cantidad_comentarios`
  3. FROM `noticias` `n`
  4.     LEFT JOIN `comentarios_noticias` `cn` ON `n`.`idnoticia` = `cn`.`idnoticia`
  5. GROUP BY `n`.`titulo`
  6. ORDER BY `cantidad_comentarios` DESC;

El ejemplo completo en sqlfiddle.com

Espero te sea útil.
  #5 (permalink)  
Antiguo 24/02/2013, 14:13
 
Fecha de Ingreso: marzo-2012
Ubicación: ciudad real
Mensajes: 62
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: problema cont() de tabla relacionada

Muchas gracias wchiquito me funciono todo perfectamente, marco como solucionado por aqui.

Saludos!

Etiquetas: join, registros, select, 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 08:15.