我有一个只有两个字段的类别表 - 即id
和categoryname
- 以及一个category_parent
带有字段categoryid
和的表parentid
。两者都是categoryid
.
所以我可以有多个父母或多个孩子的类别。
我的问题是:我怎样才能找到特定类别的所有父母或所有孩子?
“所有父母”是指直系父母以及直系父母的父母等。我需要数组或列表中父母的 ID。
对于这个问题,我更喜欢 C# 代码。
没有必要 category_parent。你可以在一张桌子上做关于类别和父母的一切。
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]))
一种方法是使用递归公用表表达式 但我假设 MySQL 不支持这个(如果我错了请纠正我)所以你可能想要使用游标或存储过程。另请阅读这篇关于在 MySQL 中管理分层数据的文章