JOIN を理解しようとすると脳が爆発することを認めなければならないので、助けが必要です。
私が達成しようとしているのは、フォーラムの最新の 25 件の投稿に関する情報を返すことですが、メインの投稿テーブルはトピックとフォーラムの数字のみを返しますが、トピックとフォーラムのテキスト名が必要で、そこから取得できます。他の 2 つのテーブル。結合についての私の非常に限られた理解では、ループやその他のおそらく不要なコードで3つ以上のクエリをコーディングするのではなく、1つのクエリでこれらすべてを実行できるようです。
これが主なクエリになります。
SELECT post_id, topic_id, forum_id, post_time
FROM posts
ORDER BY post_id DESC
LIMIT 25
しかし、25 の結果のそれぞれについて、そのテーブルの forum_id がメインのクエリ結果の forum_id と一致するテーブル forums の forum_title と、そのテーブルのtopic_idがメインのクエリ結果のtopic_idと一致するテーブルtopicのtopic_titleも含めたい.
これがどのように見えるかを見るだけでも、JOIN がどのように機能するかを理解するのに役立つことを願っています。
ありがとう
編集:提案を編集しないように、正確な列名とテーブル名を使用する必要があることに気付きました。正確な名前を使用すると、アクィナスの提案は次のようになります。
SELECT post_id, topic_id, forum_id, post_time, Forum_Title, Topic_Title
FROM phpbb3_posts
INNER JOIN phpbb3_topics
on phpbb3_topics.topic_id = phpbb3_posts.topic_id
INNER JOIN phpbb3_forums
on phpbb3_forums.forum_id = phpbb3_posts.forum_id
ORDER BY post_id DESC
LIMIT 25
しかし、このエラーが発生します (これは mysql にあります) 1052 - フィールド リストの列 'topic_id' があいまいです