父と息子の反復クエリのSQL

------------------------------------------------------------------------------
-- 子 ==> 父(包括t.id = '1'的子节点)                                        --
select *                                                                    --
  from table_name t                                                         --
connect by prior t.parent_id = t.id                                         --
 start with t.id = '1';                                                     --
----------------------------------------------------------------------      --
-- 父 ==> 子(包括t.id = '1'的父节点)                                 --      --
select *                                                             --     --
  from table_name t                                                  --     --
connect by prior t.id = t.parent_id                                  --     --
 start with t.id = '1';                                              --     --
-- 父 ==> 子(不包括t.id = '1'的父节点)                                --     --
select *                                                             --     --
  from table_name t                                                  --     --
connect by prior t.id = t.parent_id                                  --     --
 start with t.parent_id = '1';                                       --     --
-- 看start with后的条件,包括本节点就用子id,不包括本节点就用父id            --     --
----------------------------------------------------------------------      --
-- 看connect by prior后的条件,查谁,谁的id就在前                              --
------------------------------------------------------------------------------

 

おすすめ

転載: blog.csdn.net/Jeason5/article/details/90473614