类别层次结构

时间:2012-07-21 12:42:36

标签: c# mysql sql

我有一个仅包含两个字段的类别表 - 即idcategoryname - 以及一个包含字段category_parentcategoryid的{​​{1}}表。两者都是parentid的外键。

所以我可以为一个类别提供多个父母或多个孩子。

我的问题是:我怎样才能找到特定类别的所有父母或所有孩子?

“所有父母”,我指的是直系父母以及直系父母的父母等。我需要数组或列表中父项的ID。

我更喜欢这个问题的C#代码。

2 个答案:

答案 0 :(得分:1)

没有必要使用category_parent.you可以在桌子上做所有关于类别和父母的事情。

SELECT CatgoryId,CategoryName FROM Category WHERE ParentId为null>>>这是主要类别

SELECT CategoryId,CategoryName FROM Category WHERE ParentId = 2>>>对于特定类别

  CREATE TABLE [dbo].[Category](
[CategoryId] [int] IDENTITY(1,1) NOT NULL,
[CategoryName] [nvarchar](50) NOT NULL,
[ParentId] [int]  FOREIGN KEY REFERENCES [dbo].[Category] ([CategoryId]))

答案 1 :(得分:0)

一种方法是使用recursive common table expression 但我认为MySQL不支持这个(如果我错了请纠正我) 因此,您可能希望使用游标或存储过程。另请阅读managing hierarchical data in MySQL

上的这篇文章