Web ページで、フォーラム (parent_id = 0) のリストを表示し、各フォーラムについて、そのフォーラムとそのサブフォーラムのグループ内の最新 (最新) の 3 つのトピックを表示したいと考えています。
APPLE (Forum)
iPad3 Apr 12 (Topic from subForum "Tablets")
Genius Bar Apr 11 (Topic from Forum "APPLE")
iPodNano Apr 10 (Topic from subForum "Portables")
repeat with next forum
MySQL 5.5 の構造
table FORUMS (contains Forums and subForums, 2 level hierarchy max)
id (autoinc)
parent_id (0 if Forum, link to other rows id if subForum)
name
table TOPICS (a Topic is a child of Forums or subForums)
id (autoinc)
forum_id (linked to FORUMS table
name
date_added (datetime)
単純なクエリからフォーラムの結果セットを PHP の配列に取得し、それをループすることができます。
上位 3 つのトピックを表示する 2 番目の結果セットを作成する方法に行き詰まっています。
Greatest-N-Per-Group に関する投稿を読み、試してみましたが、私の考えでは複雑さが増すと思います。この時点で私の脳はどろどろなので、助けを求めています。
フォーラム ID とそのサブフォーラムの ID のコンマ区切りリストを保持する mysql 変数を作成し、それを IN (1, 4, 6) ステートメントの値として使用しますか?
それとも、これは悪い設計/アイデアであり、実行するには費用がかかりすぎますか?
私はSOに関する多くの関連記事を読みましたが、あなたが私を指し示すことができるリンクも読みます。