說我有如下表:MySQL - 如何查詢樹?
TABLE: category
- category_id (PK)
- parent_id (FK)
- name
鑑於CATEGORY_ID的值,我該如何返回給定的CATEGORY_ID及其所有後代?
說我有如下表:MySQL - 如何查詢樹?
TABLE: category
- category_id (PK)
- parent_id (FK)
- name
鑑於CATEGORY_ID的值,我該如何返回給定的CATEGORY_ID及其所有後代?
如果你想要一個單一的級別,你會做一個SELECT條件category_id = id OR parent_id = id
- 但與MySQL,你不能得到一個單一的查詢完整的樹。
你可以編寫一個存儲過程來通過所有的中間結果,並拿起子的孩子,但這真的不是很整潔。
取而代之,您可以重新設計您的表格。在MySQL開發人員網站上,有關於如何將分層數據存儲在表中的nice article,並提供了比簡單地使用parent_id更加靈活的設計。
+1鏈接到那篇文章,我正在尋找它,並將發佈它,我自己。 – 2011-05-17 22:59:55
更多的程序員會在早些時候學到這些嗎? – staticsan 2011-05-18 02:23:19
可能的重複:http://stackoverflow.com/questions/5291054/hierarchical-sql-problem – ChrisWue 2011-05-17 22:54:00