sql >> データベース >  >> RDS >> Mysql

複数の結合されたクエリで希望するようにMySQLCOUNT関数が実行されない

    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;
    

    いくつかのメモ。 comment_likersの2番目の左の結合($ usrIDを使用する結合)が何を達成するのかよくわかりませんでした。特定のユーザーの特定のトピックに関するいいねだけに興味がありますか?

    また、createdコメントのスキーマを変更することも考えられます。 varcharではなく日時になります。




    1. ログイン後にホームページにリダイレクトするphp

    2. FKがBにある、Bに関連付けられた行がないAの行を検索しますか?

    3. Oracle結合からAnsi結合への変換

    4. INSERT ... ON DUPLICATE KEY(何もしない)