SQL查询查找类别和子类别

时间:2011-10-24 19:32:47

标签: mysql sql recursion recursive-query

我有一个包含category_id和parent_category_id的表。如何使用SQL查询获得1个类别和5个子类别。

假设表名是:Category

----------------------------------------------------------------
Category ID    |       Parent ID  |     Name     
---------------------------------------------------------------- 
   1           |         NULL     |     Electronics    
   2           |          1       |     Computer   
   3           |          1       |     Calculator   
   4           |          1       |     Mobile
   5           |         NULL     |     Four Wheeler
   6           |          5       |     Cars
   7           |          5       |     Trucks
   8           |          5       |     Jeep
   9           |          5       |     Van

2 个答案:

答案 0 :(得分:2)

由于MySQL不支持递归查询/ CTE,因此您必须模拟它(这不是简单的说法)。

这是关于这个主题的优秀教程:

http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/

我将不会在这里复制代码:)

答案 1 :(得分:0)

对于SQL Server,您可以使用WITH查询来获取完整路径(此处更多http://msdn.microsoft.com/en-us/library/ms175972.aspx)。