Problème de relations SQL

WRInaute occasionnel
Bonjour,
Pour commencer désolé pour le titre peu explicite, je ne sais absolument pas comment s'appelle ce cas de figure... :oops:
Mon soucis est le suivant, j'ai trois tables dans une BDD MySQL :

etablissements
id
Nom

categories
id
Nom

lien_etablissement_categories
id_categorie
id_etablissement

Comme un établissement peut avoir de 0 à l'infinie catégories, j'ai une table avec les établissements, une avec les catégories et une dernière qui lie les deux.
J'aimerai pouvoir, en une seule requête, récupérer tous les établissements avec toutes leurs catégories associées !

Exemple :
EtablissementID1 est dans la CategorieID1 et CategorieID2
EtablissementID2 est dans la CategorieID1
EtablissementID3 est dans la CategorieID1, CategorieID3 et CategorieID4

Je veux que la requête SQL me sorte 3 lignes :
- le nom de l'EtalblissementID1 et le nom de ses deux catégories (ID1 et 2)
- le nom de l'EtalblissementID2 et le nom de sa catégorie (ID1)
- le nom de l'EtalblissementID3 et le nom de ses trois catégories (ID1, 3 et 4)

La question est la suivante : est ce que c'est possible en une seule requête ou dois je le faire en deux ? Une pour récupérer tous les ID établissement puis une qui boucle sur ce résultat pour trouver les catégories associées ?

J'espère que je suis assez clair...

Merci pour votre aide !
 
Nouveau WRInaute
Bonjour,
Je ne pense pas que ce soit possible en une requête d'avoir directement ce résultat.
Je passerai par une requête qui donne :
Etablissement 1 cat1
Etablissement 1 cat2
Etablissement 2 cat1
Etablissement 3 cat1
Etablissement 3 cat3
Etablissement 3 cat4
Puis je la traiterai via ton langage de programmation pour avoir le résultat voulu.
Quel est le langage de programmation que tu utilises ?

Jonathan
 
WRInaute occasionnel
Merci pour ta réponse,
j'utilise PHP, j'ai aucun soucis à le faire comme tu dis, c'est d'ailleurs comme ça que l'existant tourne, seulement je me disais que ça pourrait être sympa d'avoir la requête qui renverrai tout, tout fait directement ! ;)
J'ai l'impression que c'est impossible aussi, rien que par le fait que le nombre de colonne ne sera pas égale selon les lignes... :(
 
Discussions similaires
Haut