2010-12-23 150 views
0

我需要在mysql中創建一個查詢,它將列出頂級類別並列出其中的任何子類別。類別和子類別位於同一個表中。例如 。mysql類別和子類別列表

id_category | id_parent | name 

1 | 0 | category#1 
2 | 1 | subcategory#1 
3 | 1 | subcategory#2 
4 | 2 | subsubcategory#1 
5 | 0 | category#2 
5 | 5 | subcategory#3 

回答

5

您正試圖解決一個常見問題 - 您如何在關係數據庫中存儲和檢索分層數據?

,你應該做的第一件事就是閱讀這篇文章在mysql.com,「Managing Hierarchical Data in MySQLhere

現在,您正在使用「鄰接表」模型。它有幾個缺點,其中最主要的是實際上不可能編寫一個查詢來返回你存儲的所有樹。

您可能需要考慮切換到「嵌套集」模型,該模型在同一頁面上有很好的解釋。

http://dev.mysql.com/tech-resources/articles/hierarchical-data.html

0

檢查類別&子類別

select m.id as cat_id ,m.name as category, e.name as sabcategory from category e inner join category m on e.parent_id=m.id order by m.id