sql >> Database teknologi >  >> RDS >> Mysql

MySQL COUNT-funktionen fungerer ikke, som jeg gerne vil have i multiple joined-forespørgsler

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;

Et par noter. Jeg var ikke så sikker på, hvad den anden venstre join på comment_likers skulle opnå (den der brugte $usrID). Er du kun interesseret i likes fra et bestemt emne fra en bestemt bruger?

Du kan også overveje at ændre skemaet for kommentarer created at være en datetime i stedet for en varchar.




  1. Hvordan beregner jeg tabelstørrelse i Oracle

  2. Mysql - dynamisk SQL ikke tilladt i trigger

  3. Problemer med at vise blob-billeder

  4. 3 måder at generere et CREATE TABLE-script fra en eksisterende tabel i SQLite