我的问题是。我正在访问一个设计糟糕的旧设备库存系统,它在一个表中包含多个级别的设备。
例如:
表:设备
|EQ_1 | EQ_2|
|123 | |
|123 | 456 |
|123 | 567 |
|456 | 789 |
|567 | |
|789 | 987 |如您所见,第一个设备本身有一个条目123,另外还有两个条目连接到它的设备456和567。从这里开始,567只是它自己,但456连接到789,789进一步连接到987。
我已经几次把桌子放回原处,但我总是遇到比我补偿得更深的设备。我想要找到的是一种获得“端点”的方法,无论它们有多深。
示例:
我输入123作为我想要查看所有设备的设备,并且我得到的返回值为
123
456
567
789
987我是通过PHP代码执行这个查询的,所以如果有人建议我可以使用它,但由于有数十万个连接,我希望防止将信息从Oracle服务器来回传递到Web服务器,并进行多次查询。纯SQL将是第一选择,PHP/SQL混合第二,除非你能证明它更有效。
发布于 2015-09-15 02:35:12
从Marc B对问题的评论中,我找到了我需要的答案
SELECT DISTINCT EQ_1
,EQ_2
,LEVEL
FROM Equipment
CONNECT BY PRIOR EQ_2 = EQ_1https://stackoverflow.com/questions/32570673
复制相似问题