我刪除了我以前的問題,使其更易於理解。 我開發這個數據庫模式的一個論壇:MySQL難以查詢
ID:INT->PRIMARY-KEY->AUTO_INCREMENT
IDTOPIC:INT (0 if it is the "father" topic OR father's ID if it's a reply)
IDUSER:INT (ID of user who posted)
CONTENT:MEDIUMTEXT
DATE:TIMESTAMP
我需要按日期,下令查詢哪裏得到的只有最後一個線程的答覆(如果沒有「我是誰回答的最後一個用戶」,ID用戶<> $ userid)或父主題主題(如果沒有回覆)。 即使主題或答覆的結果,我需要打印的第一線IDTOPIC/ID用戶
我理想的結果應該是這樣的:
ID:IDTOPIC:IDUSER:CONTENT:DATE:IDLASTREPLY:IDLASTUSERREPLY:LASTCONTENTREPLY:LASTDATEREPLY
存在,如果最後四個字段都爲NULL沒有問題。 我需要儘可能快的查詢。 請幫幫我!
你存儲帖子使用「鄰接列表」,這可能不是您數據的最佳結構。您應該研究在數據庫中存儲分層數據的替代方法。 [這個問題](http://stackoverflow.com/questions/192220/what-is-the-most-efficient-elegant-way-to-parse-a-flat-table-into-a-tree)是一個很好的開始。 – eggyal 2012-04-25 17:19:16
但我的論壇方式與其他一些「知名」產品完全一樣,例如joomla/phpBB ......他們都使用一張帶有IDTOPIC或PARENT字段的表格來分割話題...... – 2012-04-25 18:38:56