首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sql的分层记录

使用sql的分层记录
EN

Stack Overflow用户
提问于 2020-05-01 02:00:59
回答 1查看 50关注 0票数 1

我有一张这样的桌子

代码语言:javascript
复制
**id    exType               exId   depType              depId**    
  1     Ceo                  1      Board Of Director      1    
  2     Board Of Director    1      Manager                4    
  3     Board Of Director    1      Manager                5    
  4     Manager              4      TeamLead               1    
  5     Manager              5      TeamLead               2    
  6     TeamLead             1      Member                 7    
  7     TeamLead             1      Member                 8    
  8     TeamLead             1      Member                 9    
  9     TeamLead             1      Member                 10   
  10    TeamLead             2      Member                19

当我输入作为经理的exType和作为4的exId时,我需要所有成员的输入

代码语言:javascript
复制
                                    Member                 7    
                                    Member                 8    
                                    Member                 9    
                                    Member                 10   

或者,当我输入作为teamlead的exType和作为1的exId时,我想要所有成员的

代码语言:javascript
复制
                                    Member                 7    
                                    Member                 8    
                                    Member                 9    
                                    Member                 10   

或者,当我输入作为首席执行官的exType和作为1的exId时,我想要所有成员的输入

代码语言:javascript
复制
                                    Member                 7    
                                    Member                 8    
                                    Member                 9    
                                    Member                 10   
EN

回答 1

Stack Overflow用户

发布于 2020-05-01 02:14:06

您可以使用递归查询来显示给定节点的所有依赖项:

代码语言:javascript
复制
with recursive cte as (
    select depType, depId 
    from mytable 
    where exType = 'Manager' and exId = 4
    union all
    select t.depType, t.depId
    from cte c
    inner join mytable t on t.exId = c.depId and t.exType = c.depType
)
select * from cte
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61529853

复制
相关文章

相似问题

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