首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用postgres在递归模式下获取其他记录映射的子类别ids?

如何使用postgres在递归模式下获取其他记录映射的子类别ids?
EN

Stack Overflow用户
提问于 2019-12-10 13:39:34
回答 1查看 46关注 0票数 1
代码语言:javascript
代码运行次数:0
运行
复制
category_id | category_name | category_parent_id
3           | All           |   NULL
4           | Stationary    |    3
5           | Food          |    3
6           | Solid         |    5
7           | Liquid        |    5
8           | Soft Drinks   |    7
9           | Pepsi         |    8
10          | 7up           |    8
11          | Hot Item      |    7
12          | Tea           |   11
14          | Samusa        |    6

如果我给出的类别id是7,我希望输出为

代码语言:javascript
代码运行次数:0
运行
复制
category_id | category_name | category_parent_id
7           | Liquid        |    5
8           | Soft Drinks   |    7
11          | Hot Item      |    7
9           | Pepsi         |    8
10          | 7up           |    8
12          | Tea           |   11
15          | Can(100Ml)    |   10
16          | Can(250ML)    |   10

我们需要以递归模式列出类别id为7的所有子类别及其子类别。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-10 19:44:48

您可能想看看CTE

代码语言:javascript
代码运行次数:0
运行
复制
WITH RECURSIVE 
  mapping(category_parent_id,category_id,category_name) AS (
   SELECT category_parent_id,category_id,category_name FROM t
   UNION 
   SELECT mapping.category_parent_id, t.category_id, t.category_name FROM mapping, t
     WHERE mapping.category_id = t.category_parent_id
) SELECT category_id, category_name FROM mapping WHERE category_parent_id = 7;

 category_id | category_name 
-------------+---------------
           8 | Soft Drinks
          11 | Hot Item
          10 | 7up
           9 | Pepsi
          12 | Tea
(5 Zeilen)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59260885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档