有没有办法让connect prior... start with
Oracle 中的语句从表中的第一个“孩子”开始,然后对所有剩余的孩子也运行查询?我知道如何为 1 个孩子使用该语句并获取其祖先,但我需要为表中的许多不同孩子运行代码。
假设我有这个代码,它从组件表和组件的父级返回一个组件和组件的颜色,它被归类为“样本”,它的颜色,其中组件的父级 ID 是组件的父级 ID。
这是我的架构:
Components table:
Component Component_ID Component_Parent_ID Component_Label
Component_Color Table:
Component Component_Color
注意:这是示例代码,不是我实际使用的代码,所以如果你犯了愚蠢的错误,我很抱歉。
SELECT Component,
FROM Components
INNER JOIN Component_Color ON (Components.Component = Component_Color.Component)
WHERE Component_Label = 'Sample'
connect by prior Component_Header.Component_Parent_ID = Component_Header.Component_ID
start with Component.Component_ID = '2000';
表组件有很多不同的组件,我希望查询不仅返回 ID 为 2000 的组件及其“样本”父组件,而且对表“组件”中的所有子组件执行此操作。
我可以看到如何使用循环来完成此操作,但我找不到可用于 Oracle 的循环类型。对不起,刚开始。