J'ai une table hiérarchique parent enfant. J'essaie de renvoyer une liste de tous les identifiants enfants pour chaque ID enfant. Ma table est définie comme suit:Hiérarchie parent enfant pour renvoyer tous les descendants avec l'ID principal correspondant
CREATE TABLE Organization_Hierarchy_Test (ORGANIZATION_ID INT, PARENT_ORG_ID INT);
INSERT INTO Organization_Hierarchy_Test (ORGANIZATION_ID, PARENT_ORG_ID)
VALUES(1,0), (2,1), (3,1), (4,2), (5,2), (6,2), (7,3), (8,3), (9,3), (10,3);
Les résultats que je suis après ressemblerait à ceci:
+-----------------+---------------+--------------------------+
| ORGANIZATION_ID | PARENT_ORG_ID | ORIGINAL_ORGANIZATION_ID |
+-----------------+---------------+--------------------------+
| 1 | 0 | 1 |
| 2 | 1 | 1 |
| 3 | 1 | 1 |
| 4 | 2 | 1 |
| 5 | 2 | 1 |
| 6 | 2 | 1 |
| 7 | 3 | 1 |
| 8 | 3 | 1 |
| 9 | 3 | 1 |
| 10 | 3 | 1 |
| 2 | 0 | 2 |
| 3 | 0 | 2 |
| 4 | 1 | 2 |
| 5 | 1 | 2 |
| 6 | 1 | 2 |
| 7 | 1 | 2 |
| 8 | 1 | 2 |
| 9 | 1 | 2 |
| 10 | 1 | 2 |
| 4 | 0 | 4 |
| 5 | 0 | 4 |
| 6 | 0 | 4 |
| 7 | 0 | 4 |
| 8 | 0 | 4 |
| 9 | 0 | 4 |
| 10 | 0 | 4 |
+-----------------+---------------+--------------------------+
La requête que je l'ai écrit moi obtient une liste de tous les descendants pour chaque organization_id
, mais je ne peux pas comprendre comment retourner le même organization_id
qui est en fait lié à tous les descendants.
J'ai essayé d'ajouter un group by
et de retourner l'identifiant max
avec peu de chance. J'ai une date de livraison demain et je crains de ne pas pouvoir y arriver à temps.
with descendants as
(select PARENT_ORG_ID, ORGANIZATION_ID, 1 as level
from Organization_Hierarchy_Test OH
union all
select d.PARENT_ORG_ID , OH1.ORGANIZATION_ID, d.level + 1
from descendants as d
join Organization_Hierarchy_Test OH1 on d.ORGANIZATION_ID = OH1.PARENT_ORG_ID
)
select ORGANIZATION_ID, PARENT_ORG_ID, level
from descendants
order by level, PARENT_ORG_ID, ORGANIZATION_ID
Toutes les idées sur la façon de retourner le Organization_ID
d'origine avec tous les descendants organization_id
de « s? J'essaye de pousser ceci à un modèle tabulaire et cela me sauvera beaucoup de temps dans le traitement des données.
Merci beaucoup d'avance.
Pourquoi le résultat souhaité avoir une ligne avec ORG_ID 2 et PARENT_ID 0? –