sql >> Database >  >> RDS >> Mysql

MySQL COUNT-functie presteert niet zoals ik zou willen in meerdere samengevoegde query's

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;

Een paar aantekeningen. Ik wist niet zo zeker wat de tweede overgebleven join op comment_likers moest bereiken (die met $usrID). Ben je alleen geïnteresseerd in vind-ik-leuks van een specifiek onderwerp van een specifieke gebruiker?

Je zou ook kunnen overwegen om het schema te wijzigen voor opmerkingen die created een datetime zijn in plaats van een varchar.




  1. SQL-opdracht niet correct beëindigd Uitzondering

  2. Hoe fouten in de onjuiste tekenreekswaarde op te lossen?

  3. mysql - FOUT 1064 (42000) bij gebruik van trefwoorden als kolomnaam

  4. Mogelijke PDOException-fouten (MySQL 5)?