2011-11-02 4 views
0
OrganisationID OrganisationName  parentID 
    1    Org1    Null 
    2    Org2    1 
    3    Org3    1 
    4    Org4    2 
    5    Org5    2 
    6    Org5    4 

Nom de la table est tbl_OrganisationComment faire requête récursive en utilisant une table temporaire Mysql

J'ai un tableau similaire à cela. Tout ce que j'essaie, c'est de récupérer la sous-organisation et de l'afficher. Supposons que l'ID d'organisation transmis soit 3, alors l'Org3 n'a pas d'enfant donc il n'affiche que Org3. Supposons que si OrgID = 2 alors l'Org2 a un enfant Org4 et Org4 a un enfant Org5. Donc, pour OrgID = 2, je dois afficher Org2, Org4 et Or5. Alors, comment puis-je faire cela. J'ai essayé peu de choses mais ça n'a pas marché comme je l'avais prévu.

SELECT distinct b.OrganisationID,b.OrganisationName 
FROM tbl_organisation as a LEFT OUTER JOIN tbl_organisation as b 
on a.OrganisationID=b.ParentID where a.OrganisationID=b.parentID 

Dites-moi où je me trompe J'utilise ceci dans le site web de asp.net, je suis en utilisant C# et mysql

+0

vérifier cela http://stackoverflow.com/questions/1757260/simplest-way-to-do -a-recursive-self-join-dans-sql-server – juharr

Répondre

0

Ceci est lié à Hierarchail Requête:

SELECT (LPAD (' ' niveau 3 *,'') || OrganisationID) comme ORG_ID, organisationName, parentID, nIVEAU DE tbl_Organisation DÉBUT AVEC OrganisationID = ---

Commentaire: passer l'ID Organisation ici

CONNEXION PAR AVANT OrganisationID = parentID

Si vous passez 1 comme organizationid alors la La sortie sera

Org_id OrganizationName parentID NIVEAU 1 Org1 1 2 Org2 1 2 4 Org4 2 3 6 4 4 Org6 5 Org4 2 3 3 Org2 1 2

Questions connexes