sql >> Databasteknik >  >> RDS >> Mysql

MySQL COUNT-funktionen fungerar inte som jag skulle vilja i fråga om flera sammanfogade

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;

Ett par anteckningar. Jag var inte så säker på vad den andra vänsteranslutningen på comment_likers var tänkt att åstadkomma (den som använder $usrID). Är du bara intresserad av gilla-markeringar från ett specifikt ämne från en specifik användare?

Du kanske också funderar på att ändra schemat för kommentarer som created att vara en datetime istället för en varchar.




  1. Java:Hur man infogar CLOB i Oracle-databasen

  2. komplex SQL-fråga, många till många

  3. Hämta N:te element i en array som returnerar från funktionen string_to_array().

  4. PostgreSQL anpassade undantagsvillkor