0

トピック/投稿を含む簡単なフォーラム スクリプトをまとめています。私は最新の投稿でトピックを注文しようとしていますが、次の質問の答えに幸運がありました: MYSQL Order from another Table、しかし私が抱えている問題は、いくつかのトピックにはまだ投稿がないことです。 query はそれらのトピックをまったく選択しません。

現在のコーディングは次のとおりです。

SELECT DISTINCT forum.* 
FROM forum 
INNER JOIN forum_posts 
      ON forum.id = forum_posts.parent_id 
GROUP BY forum.id 
ORDER BY forum_posts.parent_id DESC, 
         forum_posts.time_created DESC 
LIMIT ?,?

トピックの forum_posts.parent_id に一致するものがない場合、ORDER BY に forum.time_created で注文するように伝えたいと思います。


余談ですが、このクエリに WHERE 句を挿入する方法も知りたいです。フォーラム テーブル "WHERE access <= ?" からのみ行を取得したいのですが、そのスニペットをどこに置くべきかわかりません。

どんな助けでも大歓迎です!


編集:

ターゲットは、(フォーラム テーブルから) トピックを返すことです。次の詳細に従って:

  1. WHERE フォーラム.アクセス <= ?
  2. リミット?,?
  3. ORDER BY Forum.id または forum.time_created で一致する forum_posts.parent_id を持つ forum_posts テーブルからの最新の投稿

編集2:

関連データを含む SQLfiddle の例。注文は実際には 11,10,9,1,2 http://sqlfiddle.com/#!2/83535/2となるはずなので、これは機能しません。

4

1 に答える 1