sql >> Databáze >  >> RDS >> Mysql

Funkce MySQL COUNT nefunguje tak, jak bych chtěl, ve více spojených dotazech

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;

Pár poznámek. Nebyl jsem si příliš jistý, čeho měl dosáhnout druhý levý vstup na comment_likers (ten využívající $usrID). Zajímají vás pouze lajky od konkrétního tématu od konkrétního uživatele?

Můžete také uvažovat o změně schématu created komentářů být datetime namísto varchar.




  1. Nelze načíst dynamickou knihovnu 'C:\xampp\php\ext\php_oci8.dll' - %1 není platná aplikace Win32

  2. Co je nového v MariaDB 10.6

  3. Jak může být nastavení časového razítka pomalým dotazem?

  4. Získejte zbývající dny, hodiny a minuty pomocí mySql