我存儲線程的論壇,其父/子關係的數據進行排序:如何選擇和緊跟着的父/子關係
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的結果,或者我應該嘗試另一種方法一起?
此鏈接會幫助你的一樣:http://stackoverflow.com/questions/15049133/mysql-select-only-newest-message-from- distinct-threads-order-by-timestamp-priva –