Aidez-moi à monter ma requête SQL
titijoe
-
djkent1 Messages postés 381 Statut Membre -
djkent1 Messages postés 381 Statut Membre -
Bonjour,
Ca parait tout simple, mais voilà, je n'y arrive pas. J'ai une table du style :
------------------
liste | inscrit
------------------
2 | 10
2 | 11
2 | 13
3 | 12
4 | 10
J'ai besoin en une seule requête (pas de requêtes imbriquées) de sélectionner la liste de mes "inscrits" appartenant à une liste donnée à condition qu'il n'existe qu'un seul "inscrit" dans la table.
Exemple Si je fais une requête avec une des listes suivantes :
- Pour la liste 2, mon résultat doit être : 11, 13
- Pour la liste 3, mon résultat est le 12
- Pour la liste 4, aucun résultat.
Une idée?
Merci!
Ca parait tout simple, mais voilà, je n'y arrive pas. J'ai une table du style :
------------------
liste | inscrit
------------------
2 | 10
2 | 11
2 | 13
3 | 12
4 | 10
J'ai besoin en une seule requête (pas de requêtes imbriquées) de sélectionner la liste de mes "inscrits" appartenant à une liste donnée à condition qu'il n'existe qu'un seul "inscrit" dans la table.
Exemple Si je fais une requête avec une des listes suivantes :
- Pour la liste 2, mon résultat doit être : 11, 13
- Pour la liste 3, mon résultat est le 12
- Pour la liste 4, aucun résultat.
Une idée?
Merci!
7 réponses
-
Bonjour,
un truc du genre :select ce que tu souhaite afficher from table dont tu as besoin where jointure si besoin (si plusieurs tables) and id_liste = numéro de la liste souhaité HAVING count(*) = 1;
quelque chose comme ça devrait faire l'affaire je pense. -
Donc il ne regarde pas si l'id de l'inscrit existe aussi pour un autre id de liste.
suis désolé mais j comprend pas vraiment, peux tu rexpliquer le problème avec des exemples??-
En fait, mes exemples sont là dans mon premier message. Je ne sais pas quoi donner d'autre.
Je vais expliquer différement :
J'ai une gestion d'inscrits couplée à une gestion de listes.
Chaque inscrit peut appartenir à une ou pluisieurs listes.
ma table contenant ces infos contient l'id de la liste, et l'id de mon inscrit.
Si mon inscrit appartient à 2 listes, alors j'ai 2 enregistrements :
- liste:3 ->inscrit:8
- liste:4 ->inscrit:8
Si mon inscrit appartient à une liste, je n'ai qu'une ligne :
- liste:3 -> inscrit:9
Si mon inscrit n'appartient à aucune liste, je n'ai pas de ligne.
Je dois maintenant extraire les inscrits de cette table qui appartiennent à une liste donnée et ayant qu'un seul enregistrement toutes listes confondues.
J'espère avoir expliqué au mieux...
-
-
Donc si je comprend bien, tu veux afficher chaque liste ou se trouve qu'un seul inscrit??
-
Ok, dont tu veux afficher l'inscrit où les inscrits de la liste données, c'est ça?? (j'essaye de bien comprendre pour que ce soit plus clair pour ensuite pouvoir mieux te guider.)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ok, je vois mieux.
Ben personnellement, je vois comment la réaliser mais avec l'utilisation d'une sous requêtes (req. imbriqué).
Car sans sous requêtes à mon avis cela va être difficile en effet.
Juste par curiosité, pourquoi veux tu pas de requête imbriqué?? -
-
Je suis de l'avis de loicDu28, je ne vois pas comment éviter le select imbriqué.