Oracle SQL 具有两个表的分层查询
Oracle SQL hierarchical query with two tables
我有两个table结构如下
Table 1:
PRODID | PSTID |
___________________
1 | 4
2 |
3 | 2
4 |
5 |
Table 2:
PSTID | PRODID
_______________
1 | 4
2 | 1
3 | 1
5 |
现在我可以说我从 PRODID 1(可以是任何一个)开始
它应该通过 T1.PRODID = T2.PRODID 加入 table 2 并导致 PSTID -> {2, 3}
现在相应的 T2.PSTID 用于在 table 1 中开始下一轮 T2.PSTID = T1.PSTID => {3 }
因为现在 table2 中不再有 PRODID = 3 的条目,它应该停止(但可以继续)
SELECT t1.*
FROM table1 t1
INNER JOIN
table2 t2
ON ( t1.prodid = t2.prodid )
START WITH t1.prodid = 1
CONNECT BY PRIOR t2.pstid = t1.pstid;
我有两个table结构如下
Table 1:
PRODID | PSTID |
___________________
1 | 4
2 |
3 | 2
4 |
5 |
Table 2:
PSTID | PRODID
_______________
1 | 4
2 | 1
3 | 1
5 |
现在我可以说我从 PRODID 1(可以是任何一个)开始
它应该通过 T1.PRODID = T2.PRODID 加入 table 2 并导致 PSTID -> {2, 3}
现在相应的 T2.PSTID 用于在 table 1 中开始下一轮 T2.PSTID = T1.PSTID => {3 }
因为现在 table2 中不再有 PRODID = 3 的条目,它应该停止(但可以继续)
SELECT t1.*
FROM table1 t1
INNER JOIN
table2 t2
ON ( t1.prodid = t2.prodid )
START WITH t1.prodid = 1
CONNECT BY PRIOR t2.pstid = t1.pstid;