トピック/投稿を含む簡単なフォーラム スクリプトをまとめています。私は最新の投稿でトピックを注文しようとしていますが、次の質問の答えに幸運がありました: 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 <= ?" からのみ行を取得したいのですが、そのスニペットをどこに置くべきかわかりません。
どんな助けでも大歓迎です!
編集:
ターゲットは、(フォーラム テーブルから) トピックを返すことです。次の詳細に従って:
- WHERE フォーラム.アクセス <= ?
- リミット?,?
- 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となるはずなので、これは機能しません。