具有两个表的Oracle SQL分层查询

具有两个表的Oracle SQL分层查询,oracle,hierarchical-query,Oracle,Hierarchical Query,我有两张结构如下的表 表1: PRODID | PSTID | ___________________ 1 | 4 2 | 3 | 2 4 | 5 | 表2: PSTID | PRODID _______________ 1 | 4 2 | 1 3 | 1 5 | 现在我可以说我从prodid1开始(可以是任意的) 它应该以T1

我有两张结构如下的表

表1:

PRODID |   PSTID  |
___________________
 1     |    4
 2     |    
 3     |    2 
 4     |    
 5    |    
表2:

PSTID   |  PRODID
_______________
 1      |   4
 2      |   1
 3      |   1
 5      |   
  • 现在我可以说我从prodid1开始(可以是任意的)

  • 它应该以T1.PRODID=T2.PRODID连接到表2,并得到PSTID->{2,3}

  • 现在使用相应的T2.PSTID开始表1中的下一轮,T2.PSTID=T1.PSTID=>{3}

  • 由于表2中不再有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;