2017-06-18 7 views
0

投稿を簡単なフォーラム構造に整理する必要があります。各投稿には、title、description、post_id、およびparent_post_idがあります。 parent_post_id = -1の投稿はルートトップレベルのフォーラムです。すべての子供のフォーラムのトピックと投稿数をカウントするSQLクエリ

Forum 1 
    - Topic 1 
    - Post 1 
    - Post 2 
Forum 2 
    - Topic 2 
    - Post 3 
    - Post 4 

フォーラム1、フォーラム2などのネストされた投稿をすべてカウントするにはどうすればよいですか?

これまでのところ、私は次のクエリ

select forum.title, count(comment.post_id) as count from post as forum 
    left outer join post as topic on topic.parent_post_id = forum.post_id 
    left outer join post as comment on comment.parent_post_id = topic.post_id 
    where forum.parent_post_id = -1 
    group by forum.title 

を持っているが、それは間違った結果を返します。

+0

は 'GROUP BY'を削除し、必要な列を選択してみてください。あなたのクエリは、指定した結果との関係があまりありません。固定の列と行を使用して結果セットとして目的の結果を指定した場合は、役立ちます。 –

+0

Mysqlは "SQLSTATE [42000]:構文エラーまたはアクセス違反... sql_mode = only_full_group_byと互換性がありません" – ymakux

+0

** left join ** – Frank

答えて

1

この

select forum.title, count(comment.post_id) as count from (select * from post where parent_post_id = -1) as forum 
    left outer join post as topic on topic.parent_post_id = forum.post_id 
    left outer join post as comment on comment.parent_post_id = topic.post_id 
    group by forum.title 
関連する問題