1

フォーラム トピック テーブルとフォーラム コメントの 2 つのテーブルがあります。

各トピックのコメント数を含むすべてのフォーラム トピックのリストを取得しようとしています。

コメント テーブルには、各トピックのフォーラム トピックの 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`
GROUP BY
  `forum_topics`.`topic_id`
HAVING
  COUNT(`forum_comments`.`comment_id`) >= 0
  AND `forum_topics`.`review_status` = 'reviewed';

これは結果を返さないようですが、エラーもありません

誰かが助けてくれることを願っています

4

2 に答える 2

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`,
  `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
于 2013-02-21T13:20:48.553 に答える
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 
WHERE forum_topics.review_status = 'reviewed'
GROUP BY forum_topics.topic_id
HAVING COUNT(forum_comments.comment_id) >= 0
于 2013-02-21T13:16:37.893 に答える