1

http://www.vidyasocks.com/requests.php

スレッドを投稿すると、そのスレッドが一番上にぶつかってしまうので、欲しいです。

これは私が現在そのページに持っているものです"SELECT * from forum ORDER BY id DESC LIMIT 12";

データベースにはid(pk)のスレッドがあり、id(pk)とthread_id(fk)で応答します

私は何をしますか?私が想定するある種の内部結合?

4

1 に答える 1

2

スレッドと返信が挿入される日付/タイムスタンプはありますか?応答のないスレッドがあり、thread_idの順序を応答IDの順序と関連付けることができないため、応答IDに基づいて注文することはできません。

私があなたのテーブル構造について正しい考えを持っているなら、あなたはいくつかのタイムスタンプを与えられてこのようなことをしているでしょう:

 SELECT DISTINCT forum.* FROM forum 
      LEFT JOIN replies on
          forum.id = replies.thread_id
  ORDER BY coalesce(replies.reply_timestamp, forum.thread_timestamp) DESC
    LIMIT 12

合体は、応答が存在する場合はreplies.reply_timestampを返し、そうでない場合はforum.thread_timestampが使用されます。

編集:亜美のコメントに基づいてDISTINCTを追加

于 2012-05-05T05:21:03.103 に答える