我有一个包含id、parent和name字段的类别表。父字段允许一个类别成为另一个类别的子类别。
示例类别表,其中有两个主要类别(WIDGETS 和 THINGAMABOBS),并且 WIDGETS 有 3 个子类别:
- id 1,父 null,名称“WIDGETS”
- id 2,父 1,名称“GADGETS”
- id 3,父 1,名称“DOOHICKEYS”
- id 4,父 1,名称“GIZMOS”
- id 5, parent null , name "THINGAMABOBS
我有一个带有类别字段的产品表
产品链接到“GIZMOS”类别的示例产品记录:
- id 1,类别4,名称Contraption 5000
我希望能够在 SELECT 语句中提供类别名称并取回该类别中的所有产品。但我不仅想在“GIZMOS”上找到上面的记录,而且我还希望能够通过名称“WIDGET”找到它,因为MEDIUM WIDGET是WIDGET的一个子项。这应该适用于无限数量的级别(即:子子子类别)
为了使这更加复杂,我希望能够将产品分配给多个类别。也许他们会用逗号分隔?即:如果我希望Contraption 5000 存在于Doohickeys 和Thingamabobs 类别中,我会将3,5 放在类别字段中。
我的要求是否可以通过单个 select 语句实现?