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

时间:2017-01-19 08:51:25

标签: oracle hierarchical-query

我有两个具有以下结构的表

表1:

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

表2:

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

  • 应该使用T1.PRODID = T2.PRODID加入表2并导致PSTID - > {2,3}

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

  • 由于现在表2中没有更多PRODID = 3的条目,它应该停止(但可以继续)

1 个答案:

答案 0 :(得分: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;