2012-08-15 50 views
1

我有以下幾點:經典結構 - 自連接數據庫表格,列表

ID NAME PAREN_ID 
1 a null 
2 b null 
3 c  2 
4 d  3 

我想列出的ID 4項,和所有的父母,所以我想獲得:

4 d 3 
3 c 2 
2 b null 

我試過的東西:

SELECT * FROM categories c1 
JOIN categories c2 ON c2.ID = c1.PARENT_ID; 

但那不是好的結果,即使我試圖篩選到ID 4,它沒有返回。 它的MySQL!

+1

是的,它是MySQL,RDBMS在處理樹狀結構方面不太好 - 但這正是你在這裏所得到的。我建議檢查[本文](http://www.sqlsummit.com/AdjacencyList.htm),以獲得對您可能面臨的潛在問題的相當好的解釋,以及潛在的解決方法。提示:DB重新設計即將到來。 – raina77ow 2012-08-15 12:56:25

+1

嘗試使用Closure模型而不是djacency List模型。 – 2012-08-15 12:57:20

回答

0

我不太確定你如何使用MySQL。我認爲你最好的選擇是遞歸地獲取所有東西。

​​

您應該改變它以便它使用PDO。

唯一的問題是查詢返回的數據太多。