如何创建一个“你参与过的最近25个话题”MySQL页面


How to create a "Last 25 Threads you've participated in" page with MySQL

我在我的网站上为我的论坛创建了一个"你参与过的前25个线程"页面,但我不太明白要用SQL来做。它需要进入"replies"表,找到用户最近参与的25个("poster"列),但它们不能具有相同的"topic"列。然后,它需要通过'topic'表中的'last_post' int来排序。'replies'表中的'topic'列对应'topics'表中的'id'列。

帮忙吗?

表结构:

--f_topics--
id (int)
subject (varchar)
poster (varchar)
category (int)
posted (varchar)
type (varchar)
last_post (int)
views (int)
locked (int)
--f_replies--
id (int)
poster (varchar)
content (text)
date (varchar)
topic (int)
subject (varchar)
last_post (int)
SELECT t.id, t.subject, t.poster, t.category,
       t.posted, t.last_post, t.views, t.locked
FROM f_topics t
WHERE EXISTS (
    SELECT 1 FROM f_replies r
    WHERE r.topic = t.id
    AND r.poster = :user -- this is a query parameter, use PDO
)
ORDER BY t.last_post DESC
LIMIT 25

如果您不熟悉查询参数或PDO,请参见:

  • PDO
  • PDO:准备()
  • PDOStatement: bindParam ()
  • PDOStatement: execute ()
  • PDOStatement: fetch ()