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

DOS COUNT distintas tablas

Estas en el tema de DOS COUNT distintas tablas en el foro de Mysql en Foros del Web. Hola como están ? Bueno mi pregunta es la siguiente Estoy tratando de obtener resultados de dos tablas (Likes y Comentarios) que estan enlazados con ...
  #1 (permalink)  
Antiguo 17/08/2013, 18:59
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 10 meses
Puntos: 7
DOS COUNT distintas tablas

Hola como están ?
Bueno mi pregunta es la siguiente

Estoy tratando de obtener resultados de dos tablas (Likes y Comentarios) que estan enlazados con una publicacion

Quiero obtener el count de LIKES de una determinada publicacion y a su vez un count de comentarios de una determinada publicacion.

intente hacer lo siguiente pero al obtener los datos no me arroja lo debido.

select count(lk.id),count(ct.id)

from likes lk inner join comment ct

on lk.id_publicacion = ct.id_publicacion

where lk.id_publicacion = 1

Alguna sugerencia ?
  #2 (permalink)  
Antiguo 18/08/2013, 10:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 2 meses
Puntos: 300
Respuesta: DOS COUNT distintas tablas

Creo que tienes un primer problema por no incluir la tabla publicaciones o como la hayas llamado. Deberías ponerla en primer lugar y luego unir con las otras mediante LEFT JOIN, puesto que algunas publicaciones no tendrán like o comentario. Eso devolverá nulos, pero podremos controlarlo según necesitemos o no filtrar por la publicación.

Código MySQL:
Ver original
  1. SELECT pu.id, COUNT( li.id ) totalikes, COUNT( co.id ) totalcomentarios
  2. FROM `publicaciones` pu
  3. LEFT JOIN likes li ON pu.id = li.id_publicacion
  4. LEFT JOIN comentarios co ON pu.id = co.id_publicacion
  5. WHERE pu.id =1

Etiquetas: count, distintas, join, select, tabla, tablas
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 04:02.