sql >> Base de Datos >  >> RDS >> Mysql

La función MySQL COUNT no funciona como me gustaría en múltiples consultas unidas

SELECT comments.comment_id, comments.descr, comments.created, usrs.usr_name, 
  (SELECT COUNT(*) FROM comment_likers WHERE comment_id=comments.comment_id AND liker=1)likes,
  (SELECT COUNT(*) FROM comment_likers WHERE comment_id=comments.comment_id AND liker=0)dislikes
  liker
FROM comments
INNER JOIN usrs ON ( comments.usr_id = usrs.usr_id )
LEFT JOIN comment_likers  ON ( comments.comment_id = comment_likers.comment_id 
 AND comment_likers.usr_id = $usrID )
WHERE comments.topic_id=$tpcID
ORDER BY comments.created DESC;

Un par de notas. No estaba muy seguro de qué se suponía que debía lograr la segunda combinación izquierda en comment_likers (la que usa $usrID). ¿Solo te interesan los Me gusta de un tema específico de un usuario específico?

Además, podría pensar en cambiar el esquema de los comentarios created para ser una fecha y hora en lugar de un varchar.