Javascript 从类别查询项目
这里没有。我想要具有多级嵌套(可能3到4个)类别的类别。衣服>男装>夏装 所以我制作了递归分类表Javascript 从类别查询项目,javascript,sql,postgresql,join,recursive-query,Javascript,Sql,Postgresql,Join,Recursive Query,这里没有。我想要具有多级嵌套(可能3到4个)类别的类别。衣服>男装>夏装 所以我制作了递归分类表 +---------------------------------+ | CATEGORIES | +---------------------------------+ | id <PK> | | parent_id <FK -> CATEGORIES.id> | | name
+---------------------------------+
| CATEGORIES |
+---------------------------------+
| id <PK> |
| parent_id <FK -> CATEGORIES.id> |
| name |
+---------------------------------+
+-----------------------------------+
| ITEMS |
+-----------------------------------+
| id <PK> |
| category_id <FK -> CATEGORIES.id> |
| name |
+-----------------------------------+
+---------------------------------+
|类别|
+---------------------------------+
|身份证|
|家长id类别。id>|
|名字|
+---------------------------------+
+-----------------------------------+
|项目|
+-----------------------------------+
|身份证|
|类别\标识类别。标识>|
|名字|
+-----------------------------------+
问题是我不知道如何查询第一级父类别下的所有项目
例如,项目1
在第二级以下,男装(id:2)
和项目2
在第三级以下,夏装(id:3)
当我查询服装(id:1)
下的项目时,我想查看所有项目1
和项目2
,这是男装
和夏装
的父项
我该怎么做
Stack:Node.js、Postgres、Knex.js、TypeScript您可以使用递归查询列出输入类别的所有子项,然后使用它筛选项目:
with recursive cats as (
select id from categories where name = ?
union all
select c.id
from categories c
inner join cats p on p.id = c.parent_id
)
select i.*
from items i
inner join cats c on c.id = i.category_id
问号应替换为要展示其项目的(父)类别的名称(在您的示例中,这将是
'Clothing
)。您可以使用递归查询列出输入类别的所有子类别,然后使用它筛选项目:
with recursive cats as (
select id from categories where name = ?
union all
select c.id
from categories c
inner join cats p on p.id = c.parent_id
)
select i.*
from items i
inner join cats c on c.id = i.category_id
问号应替换为您想要展示其项目的(父)类别的名称(在您的示例中,这将是'Clothing
)