メッセージ ボードを作成していて、クエリを作成しようとしています。私のデータベース構造は次のとおりです。
テーブル名:テーブル行、テーブル行
カテゴリ: id、名前
トピック: id、categoryid
投稿: id、topicid
ホームページでは、各カテゴリと、各カテゴリのトピック数と投稿数を一覧表示したいと思います。複数の結合を使用するいくつかのクエリを見てきましたが、私の状況に構文を適用するのに問題があります。
これが私が思いついたものです:
SELECT `categories`.`id`, `categories`.`name`,
SELECT COUNT(DISTINCT `topics`.`id`)
FROM `topics`
WHERE `topics`.`categoryid` = `categories`.`id`
AS `numtopics`,
SELECT COUNT(DISTINCT `posts`.`id`)
FROM `posts`
WHERE `posts`topicid` = `topics`.`id`
AS `numposts`
FROM `categories`
JOIN `topics` ON `categories`.`id` = `topics`.`categoryid`
JOIN `posts` ON `topics`.`id` = `posts`.`topicid`
;
topicid に基づいて投稿の数をカウントし、それを最初の結合によって作成されたテーブルと結合しようとすると、混乱し始めます。私がしていることをすることは可能ですか?もしそうなら、私はそれを正しく行っていますか?