0

私はMySQLクエリスキルの限界に直面しているので、SQLの第一人者がこれを助けてくれることを願っています。私は2つのテーブルを持っています:

表「コメント」
comment_ID | comment_post_ID
     120 | 620
     121 | 620
     122 | 620
   テーブル「comments_like」
like_ID | comment_ID
    1 | 120
    2 | 120

私はcomment_post_IDによって同様のグループを持つコメントの数を結果として出します:

COUNT(コメントのようなコメント)| comment_post_ID
      1 | 620
4

4 に答える 4

0

comments_likeリストされている各コメントを1回だけカウントする必要がある場合は、次のようにします。

select comment_post_ID, count(distinct cl.comment_ID) 
from comments c, comments_like cl 
where c.comment_id = cl.comment_id 
group by comment_post_ID
于 2012-05-31T12:50:27.820 に答える
0

ここではサブクエリが最も簡単だと思います。

SELECT (SELECT COUNT(like_ID) FROM `comments_like` cl WHERE cl.comment_ID=c.comment_ID) AS comments_in_comments_like, c.comment_post_ID FROM `comments` c

あなたの例ではコメントID120に2つのいいねがあるので、これはいいねのカウントを2にします。

于 2012-05-31T12:41:58.547 に答える
0

このクエリは、comment_like テーブルのコメントの post_id といいねの数を返します

 SELECT comment_post_ID, count(like_ID)
 from (select distinct comment_post_ID,like_ID 
       from comments_like cl , comments c
 where cl.comment_ID= c.comment_ID ) as iq
 group by comment_post_ID
于 2012-05-31T12:45:20.240 に答える
0
select cmtLike.like_ID, commnts.comment_post_ID
from comments_like cmtLike left join comments commnts on cmtLike.comment_ID = commnts.comment_ID
于 2012-05-31T12:47:54.853 に答える