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



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

表 1:

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

表 2:

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

  • 它应该与 T1 联接到表 2。PRODID = T2。PRODID 和 result in 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;

最新更新