2012-02-03 55 views
0

可能重複:
What is the most efficient/elegant way to parse a flat table into a tree?
php/Mysql best tree structure我應該在sql或php中使用循環嗎?

我有一個表在我的數據庫全組,每組行有一個父ID,直到最後父ID爲0,使得金字塔。例如:

ID:1 名稱:員工 父:0

ID:2 名稱:通信隊 父:1

ID:3 名稱:網絡部門 父:2

現在可以一直持續下去順着線路,所以我想要做的是通過使用一個SQL語句給網絡部門ID就會把所有的家長組織,直到父母爲0

這有可能在SQL語句中?我怎麼能這樣做?

回答

2

我不認爲你需要一個循環在所有...只是這樣的事情在T-SQL:

SELECT id, name, parent 
FROM tablename 
WHERE parent <= (select parent from tablename where name = 'staff') 
ORDER BY parent; 

這應返回的所有行父ID小於或等於員工的父母身份。如果您希望以其他方式排序,請改用ORDER BY父ASC。

+0

以及家長不會永遠是小於,隨機生成的ID的,所以如果我做的不足,我會得到這個人之前創建的所有家長和團體。 – Samir 2012-02-03 22:03:19

+0

你能否解釋一下這句話,則:
所以我想要做的是通過使用一個SQL語句給網絡部門ID就會把所有的家長組織,直到父母爲0
我想我不知道明白了,它聽起來就像你從當前條目檢索它們,直到父爲0 ...所以從目前的ID爲0。你能換一種說法? – David 2012-02-03 22:12:11

0

你拉,你可能需要從SQL,然後使用遞歸函數在PHP通過結果走了一切。尋找PHP遞歸樹。

+0

哦,我看,像是剛剛從SQL拉的一切,然後進行排序,通過在PHP中的垃圾? – Samir 2012-02-03 21:49:03

相關問題