[英]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=child
並start 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.