私は現在、フォーラムを開発しようとしています。今、私は小さな障害に遭遇しました。データベースに 4 つのテーブルがあります。「カテゴリ」、「フォーラム」、「トピック」、「返信」です。それらはすべて、ID、親 ID、および名前を持っています。
私の問題は、各カテゴリとフォーラムのトピックと返信の量をどのように保存して取得するかです。最初は、すべてのカテゴリとフォーラムのすべてのトピックと返信を保存し、すべてのトピックのすべての返信を保存することを考えました。
しかし、返信ごとに1回の挿入と3回の更新を行う必要があるため、これは見ないようにしたいものです。カテゴリに 1 つ、フォーラムに 1 つ、トピックに 1 つ、最後に返信自体、挿入物です。
代わりに、COUNT、GROUP BY、およびINNER JOINを使用してクエリを作成することが可能かどうか(可能であればその方法)を考えました
線に沿った何か
SELECT *
FROM `categories`
JOIN (COUNT ( * )
FROM `topics`
GROUP BY `parent_id`
WHERE `parent_id` = `categories`.`id`) as `amount_of_topics`
JOIN (COUNT ( * )
FROM `topics`
GROUP BY `parent_id`
WHERE `parent_id` = `topics`.`id`) as `amount_of_replies`
ただ、思い通りに動かないだけです。
したがって、すべての返信を取得して特定のフォーラムの数をカウントするには、接続の返信とフォーラムが得たものは、返信のparent_idが、parent_idがフォーラムに属しているトピックに属しているということです。