我有一个只有两个字段的分类表 - 即id
和categoryname
- 和一个category_parent
表,字段为categoryid
和parentid
。两者都是categoryid
的外键。类别层次
所以我可以有多个父母或多个孩子的类别。
我的问题是:我怎么能找到所有的父母或一个特定类别的所有儿童? “所有的父母”,我的意思是直系父母,以及直系父母的父母,等等。我需要一个数组或列表中父母的ID。
我更喜欢这个问题的C#代码。
我有一个只有两个字段的分类表 - 即id
和categoryname
- 和一个category_parent
表,字段为categoryid
和parentid
。两者都是categoryid
的外键。类别层次
所以我可以有多个父母或多个孩子的类别。
我的问题是:我怎么能找到所有的父母或一个特定类别的所有儿童? “所有的父母”,我的意思是直系父母,以及直系父母的父母,等等。我需要一个数组或列表中父母的ID。
我更喜欢这个问题的C#代码。
一种方法是使用recursive common table expression 但我认为MySQL不支持这样(请纠正我,如果我错了) 所以,你可能想使用游标或存储过程。你也可以阅读这篇文章managing hierarchical data in MySQL
其实我需要的是一个C#代码,这样我就可以得到一个数组或类别列表中的所有父类的列表
没有必要category_parent.you可以做一切有关类别和家长在桌子上。
SELECT CatgoryId,类别名称FROM类别WHERE的ParentId为null >>>这是主要类别
SELECT类别ID,类别名称FROM类别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]))
如何在表格中拥有多个父母或多个子类别的孩子? – user1542652 2012-07-24 12:34:54
当您将数据插入到表中,这样, -------------类别编号 - 类别名称 - 的ParentId(头)---- 1 - 电脑 - 空 2 - Phone - null 3 - Nokia - 2(ParentId = 2(Phone)) 4 - Nokia5110 - 3(ParentId = 3(Nokia)) 5 - Casper - 1(ParentId = 1 PC) – User86 2012-07-24 19:54:51
哪您使用的SQL的味道? MySQL,SQL Server等... – 2012-07-21 12:47:32
您是否需要简单的select语句或函数或存储过程是您的解决方案? – danihp 2012-07-21 13:11:01
为什么你有'category_parent'表?一个类别可以有多个父母吗?如果不是,似乎没有必要。 – 2012-07-21 16:34:58