【发布时间】:2014-01-05 00:38:03
【问题描述】:
我使用递归查询来识别给定类别 ID 的所有相关子类别。
WITH parent AS ( SELECT ParentId, Title, Id
FROM [CocoDb].[dbo].[Categories]
WHERE Id = @CategoryId),tree AS
(
SELECT x.ParentId, x.Id, x.Title
FROM [CocoDb].[dbo].[Categories] x
INNER JOIN parent ON x.ParentId = parent.Id
UNION ALL
SELECT y.ParentId, y.Id, y.Title
FROM [CocoDb].[dbo].[Categories] y
INNER JOIN tree t ON y.ParentId = t.Id
)
SELECT * FROM Tree
我的桌子是:
Categories (ID INT PRIMARY KEY, ParentId INT, Title VARCHAR(MAX))
SQL Server 的问题:我可以有一个返回所有类别的查询吗?
例如:
- 书籍(ID:1,父级:0)
- 恐怖(ID:2,父母:1)
- Steven King(身份证:3,父母:2)
现在,如果我要求 Steven King (Id 3),我将获得所有相关类别,例如本案例中的书籍和恐怖片。
这可以通过递归 SQL 查询实现吗?
最好的问候
【问题讨论】:
标签: sql sql-server