在网页上,我想显示论坛列表(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 个主题的第二个结果集上。
我已阅读有关 Greatest-N-Per-Group 的帖子,并尝试过它们,但我认为我的想法增加了一定程度的复杂性。我的大脑在这一点上是糊状的,所以我正在寻求帮助。
我是否创建一个 mysql 变量来保存论坛 id 及其子论坛的逗号分隔的 id 列表,然后将其用于 IN (1, 4, 6) 语句的值?
或者这是一个糟糕的设计/想法并且执行起来太昂贵?
我已经阅读了许多关于 SO 的相关帖子,但是您也可以指出我的任何链接,我也会阅读。