我有一個表結構在MySQL這樣的檢索所有葉子節點:建議SQL查詢從鄰接表型號
________________________
| id | int(auto) |
|------------------------|
| name | varchar |
|------------------------|
| link | varchar |
|------------------------|
| parent_id| int |
|________________________|
基本上它是一個數據庫驅動的菜單設計,根菜單有parent_id
0 ,而子菜單的根菜單在parent_id
字段中指定。它可以達到3-4級。
現在,我需要找到根菜單下的所有子菜單。我可以很容易地做到這一點的菜單,但我不能遍歷它。我可以通過編寫一個程序(通過合併結果集)來實現這一點,但如果我只用SQL就可以做到這一點,它將變得更加簡單和方便。
我無法更改表格的任何結構或以其他方式修改系統。請幫忙。
有一個很好的理由,這種數據通常以不同的方式存儲。 http://en.wikipedia.org/wiki/Nested_set_model – ceejayoz 2012-08-01 18:35:06
閱讀此http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ – hackattack 2012-08-01 18:38:13
謝謝。這篇文章非常有用。特別是「從鄰接列表模型中檢索完整樹」與我的回答太接近了,但是我不需要將它們放在關卡上,而需要整合到一行上。可能嗎。 – biztiger 2012-08-01 19:06:54