我有一个仅包含两个字段的类别表 - 即id
和categoryname
- 以及一个包含字段category_parent
和categoryid
的{{1}}表。两者都是parentid
的外键。
所以我可以为一个类别提供多个父母或多个孩子。
我的问题是:我怎样才能找到特定类别的所有父母或所有孩子?
“所有父母”,我指的是直系父母以及直系父母的父母等。我需要数组或列表中父项的ID。
我更喜欢这个问题的C#代码。
答案 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
上的这篇文章