別のテーブルのデータをチェックするSQLクエリ

私はJOINのようなもっと複雑なSQL問合せではあまり良くありません。だから私はこの面では無知です。

私は3つのテーブルを持っている:

FORUM_Topics
FORUM_Threads
FORUM_Replies

フォーラムのトピックは最高レベルです。

フォーラムスレッドはトピックの中にあります。

フォーラム返信はスレッド内にあります。

返信は、自分がどのトピックに属しているかを直接的には言いません。スレッドは次にどのトピックを話します。

だから、このように見える:

FORUM_Topics
ID = 1
Name = A topic

FORUM_Threads
ID = 1
TopicID = 1
Name = A forum thread

FORUM_Replies
ID = 1
ThreadID = 1
Name = A forum reply

あるトピックのスレッド数を確認したい場合は、次のように簡単です。

$threads = mysql_query("SELECT * FROM FORUM_Threads WHERE TopicID = $ID");

トピック内の返信数を確認するにはどうすればよいですか?

ベストアンサー

select FORUM_Replies.* from FORUM_Replies
inner join FORUM_Threads on FORUM_Replies.ThreadID = FORUM_Threads.ID
where FORUM_Threads.TopicID = $ID

返信とスレッドの両方から結果を得ることができます。

select FORUM_Replies.Name as ReplyName, FORUM_Threads.Name as ForumName from FORUM_Replies
inner join FORUM_Threads on FORUM_Replies.ThreadID = FORUM_Threads.ID
where FORUM_Threads.TopicID = $ID

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です