Aidez-moi à monter ma requête SQL

Fermé
titijoe - 16 févr. 2009 à 12:01
djkent1 Messages postés 363 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 20 mai 2015 - 16 févr. 2009 à 15:15
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!

7 réponses

loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
16 févr. 2009 à 12:06
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.
0
Merci, mais le problème là, c'est qu'il fait une selection sur une liste précise. Donc il ne regarde pas si l'id de l'inscrit existe aussi pour un autre id de liste.
0
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
16 févr. 2009 à 12:15
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??
0
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...
0
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
16 févr. 2009 à 13:37
Donc si je comprend bien, tu veux afficher chaque liste ou se trouve qu'un seul inscrit??
0
En fait, non, je veux pas afficher chaque liste. Uniquement celle que je passe en paramètre (where id_liste=x).
0
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
16 févr. 2009 à 13:56
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.)
0
Bonjour

Tu veux afficher la liste de ceux qui ne sont inscrits que sur une seule liste n'est-ce pas?
0
titijoe > wada
16 févr. 2009 à 14:37
Merci Wada, oui, c'est ça!! C'est tellement plus facile en le disant :-) et je reprécise :
Je veux afficher la liste de ceux qui ne sont inscrits que sur une seule liste "qui sera passée en paramètre". (where id_liste=x).

Voilà
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 53
16 févr. 2009 à 14:43
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é??
0
Plusieurs centaines de milliers de lignes...
La différence est notable!
0
djkent1 Messages postés 363 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 20 mai 2015 48
16 févr. 2009 à 15:15
Je suis de l'avis de loicDu28, je ne vois pas comment éviter le select imbriqué.
0