我正在尝试创建一个最近活跃的主题部分,但我遇到了查询问题。
我有三个表:帖子、主题、类别(从小到大)。每个帖子都与一个主题相关联,每个主题都与一个类别相关联。
现在,问题是显示最近发布的唯一主题。
这是一个快速场景:用户 X 在主题 A 中发帖,然后在主题 B 中发帖。用户 Y 创建主题 C 并在主题 A 中发帖。就在用户 Y 在 A 上发帖之前,用户 Z 在主题 A 上发帖。
在活动主题列表中,我想显示以下内容:
- 主题 A - Y 的消息
- 主题 C - Y 的消息
- 主题 B - X 的消息
我当前的 sql 只是正确地抓取了序列,但也得到了相同的主题:
- 主题 A - Y 的消息
- 主题 A - Z 的消息
- 主题 C - Y 的消息
- 主题 B - X 的消息
主题 A - X 的消息
从主题、帖子、类别中选择 topic_subject、post_date、post_msg、post_by、cat_color,其中 topic_id = post_topic AND topic_cat = cat_id ORDER BY post_date DESC
如果我添加 GROUP BY topic_subject 或其 id,我会得到原始主题创建者,如下所示:
- 主题 C - Y 的消息
- 主题 B - X 的消息
- 主题 A - X 的消息
我需要一个子查询吗?谢谢!