Para encontrar os filhos de uma linha pai, o Oracle avalia a expressão PRIOR da condição CONNECT BY para a linha pai e a outra expressão para cada linha na tabela. As linhas para as quais a condição é verdadeira são os filhos do pai. A condição CONNECT BY pode conter outras condições para filtrar ainda mais as linhas selecionadas pela consulta.
Quando o Oracle seleciona o nó filho para um nó pai, ele seleciona todas as linhas, exceto a linha atual, certo? Uma linha pode aparecer várias vezes no conjunto de resultados (quero dizer, uma linha é o nó filho da linha A e da linha B)?
Teria que haver dados indicando que a linha é filha da linha A e filha da linha B. Isso pode ser feito, mas não parece ser típico. Pense em um funcionário. A maioria dos funcionários tem apenas um gerente direto. Em um projeto simples, um funcionário poderia ter dois gerentes, mas exigiria vários registros de funcionários. Por exemplo:
Não estou claro se esta é uma questão sobre modelagem ou a própria consulta hierárquica - mas assumindo o último.
sim, desde que não haja loop nos dados, não há restrição na maneira como você define o que é uma linha 'pai' e o que é uma linha 'filho':
banco de ensaio:
exemplo:
observe que no resultado, id
3
tem dois 'pais' diferentes