【发布时间】:2013-07-04 06:59:21
【问题描述】:
我正在为具有父/子关系的论坛存储线程,如下所示:
CREATE TABLE forum_threads (
thread_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INTEGER UNSIGNED NOT NULL DEFAULT 0,
topic_id INTEGER UNSIGNED NOT NULL,
user_id INTEGER UNSIGNED NOT NULL,
title VARCHAR(100) NOT NULL,
body TEXT NOT NULL,
create_date DATETIME NOT NULL,
PRIMARY KEY (thread_id),
FOREIGN KEY (parent_id)
REFERENCES forum_threads(thread_id),
FOREIGN KEY (topic_id)
REFERENCES forum_topics(topic_id),
FOREIGN KEY (user_id)
REFERENCES users(user_id)
);
新线程有parent_id = 0,而回复有parent_id = the thread_id being replied to。
我想选择最近更新(回复)的线程并将结果显示在一个表格中,如下所示:
我该怎么做?
SELECT * FROM forum_threads
WHERE topic_id = whatever AND parent_id = 0
WHAT NEXT???
我不确定这是否可以使用纯 SQL 来完成,或者我是否应该使用 PHP 来处理结果,或者我是否应该一起尝试另一种方法?
【问题讨论】:
-
这个链接也可以帮助你:stackoverflow.com/questions/15049133/…