2011-03-10 3 views
0

Je dois créer une requête de jointure pour les données hiérarchiques sur 2 tables. Ces tableaux peuvent avoir des quantités illimitées de données et leurs structures sont les suivantes:Comment créer une requête de jointure mysql avec des données hiérarchiques

group_id  group_name  group_order 
    1   group 1   2 
    2   group 2   1 


field_id field_name parent_group field_order 
    1   field 1   1    1 
    2   field 2   2    2 
    3   field 3   2    1 

Je suis actuellement en mesure d'obtenir le bon format de données à l'aide de 2 requêtes de sélection avec la deuxième requête dans une boucle créée à partir des résultats de la première requête sur la table des groupes.

La structure des données que je requiers du résultat est la suivante:

-group 2 
     - field 3 
     - field 2 

- group 1 
     - field 1 

Est-il possible d'obtenir ces résultats d'une requête MySQL? J'ai lu le document mysql sur les données hiérarchiques par Je suis confus sur la façon d'incorporer la jointure.

Merci pour la recherche

Répondre

0

Vous ne devriez pas besoin de penser en termes de données hiérarchiques, vous devez simplement être en mesure de sélectionner vos champs et rejoignez votre groupe information. Essayez quelque chose comme:

SELECT * 
FROM Fields AS F 
INNER JOIN Groups AS G 
ON G.group_id = F.parent_group 
ORDER BY group_order, field_order 

Ensuite, vous obtiendrez chacun des champs comme une ligne avec le groupe applicable, également dans l'ordre de groupe correct. Votre boucle devrait être capable de gérer l'affichage dont vous avez besoin.

+0

Merci. Oui vous avez raison J'utilisais la mauvaise logique pour essayer de créer la déclaration –

Questions connexes