L'aide se CONNECTER pour obtenir tous les parents et un enfant dans la Hiérarchie par le biais de la requête SQL dans Oracle
Je passais par certains posts précédents sur se CONNECTER PAR l'usage. Ce que j'ai besoin de savoir, c'est que que faire si je veux obtenir tous les parents (j'.e, jusqu'à la racine) et juste un enfant d'un nœud, dire 4.
Il semble que je vais avoir à utiliser de l'union des deux suivantes:-
SELECT *
FROM hierarchy
START WITH id = 4
CONNECT BY id = PRIOR parent
union
SELECT *
FROM hierarchy
WHERE LEVEL =<2
START WITH
id = 4
CONNECT BY
parent = PRIOR id
Est-il une meilleure façon de le faire, certains solution de contournement qui est plus optimisé?
OriginalL'auteur s khan | 2010-03-31
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure de le faire à l'aide d'une sous-sélection (et
DISTINCT
) pour trouver tous les enfants de4
:À l'aide de
UNION
vous pourriez au moins supprimer laCONNECT BY
à partir de votre deuxième question:Ne jamais utiliser
SELECT *
, toujours nommer les colonnes dont vous avez réellement besoin. Cela rend votre requête plus facile à lire, à maintenir et à optimiser.OriginalL'auteur Peter Lang