Requete imbriquée

Lanfeust -  
boudjeroua Messages postés 7 Statut Membre -
Bonjour, lorsque j'effectue cette requete:
SELECT NomS, PrenomS FROM STAGIAIRE WHERE IdStagiaire=(SELECT IdStagiaire FROM INSCRIPTION WHERE IdStage='16')


le serveur sql me retourne cette reponse :
#1242 - Subquery returns more than 1 row

comment faire marcher ma requete??
toute aide est la bien venu
d'avance merci

5 réponses

teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Salut

WHERE IdStagiaire IN (SELECT...)

19
boudjeroua Messages postés 7 Statut Membre 5
 
salut,
la réponse la plus simple je crois est la Ste:
SELECT NomS, PrenomS FROM STAGIAIRE,INSCRIPTION WHERE STAGIAIRE.IdStagiaire=INSCRIPTION.IdStagiaire
AND INSCRIPTION.IdStage='16';
Bonne chance.
Merci
Question: idstage est de type texte ou numérique?
5
wolfer
 
SELECT NomS, PrenomS
FROM STAGIAIRE, INSCRIPTION
WHERE Ta jointure entre STAGIAIRE et INSCRIPTION
AND IdStage='16';
0
wolfer
 
Cela devrait normalement marcher...
A suivre..
0

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

Posez votre question
jebok Messages postés 358 Statut Membre 51
 
ca ne peut pas marcher car ton 2ème SELECT doit retourner au maximum une ligne (un tuple).
Or apparemment, il existe plusieurs stagiaires dont l'IdStage est égal à 16...
ta base de données serait-elle incohérente ?...
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Non cela veut juste dire que plusieurs stagiaires sont sur le même stage, ça me parait cohérent à moi :o)
D'où le IN et non le =
0
jebok Messages postés 358 Statut Membre 51 > teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention  
 
OK je suis d'accord : IN à la place de =
0