0

すべてのメイン スレッドの投稿を 1 つのデータベース テーブルに、すべての回答を別のデータベース テーブルに格納するフォーラムを作成しています。これまでのところ、テーブルが 2 つあるのは大変なことでした。

forum_threads
thread_id | title | post

forum_answers
answer_id | ref_thread_id (foreign key) | post

スレッドのタイトルを含む最新の投稿を選択するにはどうすればよいですか? スレッドに回答がない可能性があります。その場合、すべてのデータは forum_thread から取得する必要があります。ただし、回答データがある場合は、forum_answers と、forum_threads にあるタイトルから選択する必要があります。

ご理解いただければ幸いです。

すべてを 1 つの表、回答、および主な投稿にまとめれば、これはずっと簡単になります。これが最善の方法だと言われましたが、よくわかりません.....テーブルを1つだけに戻すことを検討しています。

ご協力いただきありがとうございます!

4

2 に答える 2

1

これにより、必要なものが得られるはずですが、実際にはこれらのテーブルに日付を格納する必要があります。

SELECT
    ft.thread_id,
    ft.title,
    COALESCE(fa.post,ft.post) AS post
FROM
    forum_threads ft
LEFT JOIN
    forum_answers fa
    ON  (ft.thread_id = fa.ref_thread_id)
ORDER BY
    ft.thread_id
LIMIT 1;

そのスレッドに値がない場合を除き、postからの値を提供します。その場合は、からの値を提供しますforum_answerspostforum_threads

于 2013-01-03T08:53:54.563 に答える
0

これを試して。

SELECT fa.post, ft.title
FROM forum_threads ft INNER JOIN forum_answers fa ON
     ft.thread_id = fa.ref_thread_id
ORDER BY fa.answer_id
LIMIT 1;
于 2013-01-03T08:51:06.147 に答える