Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Funkcja MySQL COUNT nie działa tak, jak bym chciała w wielu połączonych zapytaniach

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;

Kilka notatek. Nie byłem zbyt pewien, co ma osiągnąć drugie z pozostałych sprzężeń na comment_likers (to używające $usrID). Czy interesują Cię tylko polubienia na określony temat od określonego użytkownika?

Możesz także pomyśleć o zmianie schematu komentarzy created być datą i godziną zamiast varchar.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz dane z zakresu dat/czasów

  2. Znaki Ruby i MySQL UTF-8

  3. Czy $_SESSION jest bezpieczny przed wstrzyknięciami sql?

  4. Kod błędu MySQL:1064. Wystąpił błąd w składni SQL

  5. Równoczesna kontrola płatności