2013-02-21 2 views
1

포럼 토픽 테이블과 포럼 코멘트가 2 개 있습니다.MYSQL COUNT HAVING 호

각 주제에 몇 개의 댓글이 들어 있는지와 함께 모든 포럼 주제의 목록을 얻으려고합니다.

주석 표에는 각 주제에 대한 포럼 주제의 PK가 들어 있습니다. 내가

희망의 사람이

SELECT forum_topics.topic_id, forum_topics.topic_name, forum_topics.topic_info, 
    forum_topics.topic_img, forum_topics.creation_date, forum_topics.is_deleted 
FROM forum_topics 
JOIN forum_comments ON forum_comments.topic_id = forum_topics.topic_id 
WHERE forum_topics.review_status = 'reviewed' 
GROUP BY forum_topics.topic_id 
HAVING COUNT(forum_comments.comment_id) >= 0 
+0

데이터베이스 구조의 예는 무엇입니까? –

+0

귀하의 질의에 잘못된 것이 없습니다. 'topic_id'를 오른쪽으로 사용하여'forum_comments'에 기록을 남기고 있습니까? – Aioros

+0

상태가 맞습니까? –

답변

3

도움을 줄 수있는 결과뿐만 아니라 어떤 오류를 반환하지 않는 것

SELECT 
    `forum_topics`.`topic_id`, 
    `forum_topics`.`topic_name`, 
    `forum_topics`.`topic_info`, 
    `forum_topics`.`topic_img`, 
    `forum_topics`.`creation_date`, 
    `forum_topics`.`is_deleted` 
FROM 
    `forum_topics` 
JOIN 
    `forum_comments` 
ON 
    `forum_comments`.`topic_id` = `forum_topics`.`topic_id` 
GROUP BY 
    `forum_topics`.`topic_id` 
HAVING 
    COUNT(`forum_comments`.`comment_id`) >= 0 
    AND `forum_topics`.`review_status` = 'reviewed'; 

을 시도

:

SELECT 
    `forum_topics`.`topic_id`, 
    `forum_topics`.`topic_name`, 
    `forum_topics`.`topic_info`, 
    `forum_topics`.`topic_img`, 
    `forum_topics`.`creation_date`, 
    `forum_topics`.`is_deleted`, 
    `forum_topics`.`review_status`, 
    COUNT(`forum_comments`.`comment_id`) count_comments 
FROM 
    `forum_topics` 
LEFT JOIN 
    `forum_comments` 
ON 
    `forum_comments`.`topic_id` = `forum_topics`.`topic_id` 
order by case when `forum_topics`.`review_status` = 'reviewed' then 1 else 2 end, 
     count_comments desc 
+0

고마워요, LEFT JOIN이 고쳤습니다. 나는 당신의 질문을 더 잘 이해하기 때문에 당신에게 진드기를 줬습니다. 마크 대답도 정확합니다 –

+0

당신을 환영합니다!, 좋은 그것이 당신을 도와줍니다! –

3

다음을 시도하려고