簡體   English   中英

查詢connect by子句

[英]query on connect by clause

我有2張桌子

table 1 

vic_id | part 1 
----------------
11       ch
12       bo
13       dd
14       gm
15       mh
16       sh
17       vai
18       bal
19       gur
20       ma
21       ar
22       st
23       in
24       va
25       vi

table 2

 parent || child
 ---------------
  11        12
  12        13
  11        14
  14        15
  11        17
  17        15

我想要以結尾的結構

11-14-15(ch-gm-mh) 
11-17-15(ch-vai-mh)

我希望查詢的計數為2

我嘗試與

connect by parent=childstart with parent但是沒有得到預期的結果。

提前致謝

使用connect by分層查詢允許您將兩個級別結合在一起,例如child-ancestor。 在您的情況下,您似乎想遞歸連接從根開始並在樹中遞減的值。

為了獲得最終結果,您可以使用例如WITH (非測試查詢)查看嵌套子查詢

WITH RECURSIVE
    roots AS ( 
       SELECT parent, part1 
       FROM table2 
       JOIN table1 on parent = vic_id
       WHERE parent NOT IN (SELECT child FROM table2)),
    res AS (
       SELECT parent cur, part1 cur_part, parent ids, part1 parts
       FROM roots 
       UNION ALL
       SELECT 
             child cur, 
             part1 cur_part,
             ids||'-'||child,
             parts||'-'||part1
       FROM res
       JOIN table2 on cur = parent
       JOIN table2 on child = vic_id
    )
SELECT ids, parts
FROM res
WHERE ids like '11%';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM