Posez votre question Signaler

Requete imbriquée

Lanfeust - Dernière réponse le 6 juin 2005 à 22:08
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
Lire la suite 

Requete imbriquée »

7 réponses
Réponse
+7
moins plus
Salut


WHERE IdStagiaire IN (SELECT...)

Ajouter un commentaire
Réponse
+5
moins plus
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?
Ajouter un commentaire
Réponse
+0
moins plus
SELECT NomS, PrenomS
FROM STAGIAIRE, INSCRIPTION
WHERE Ta jointure entre STAGIAIRE et INSCRIPTION
AND IdStage='16';
Ajouter un commentaire
Réponse
+0
moins plus
Cela devrait normalement marcher...
A suivre..
Ajouter un commentaire
Réponse
+0
moins plus
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 ?...
teebo - 6 juin 2005 à 13:37
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 =
jebok - 6 juin 2005 à 18:00
OK je suis d'accord : IN à la place de =
Ajouter un commentaire
Ce document intitulé « Requete imbriquée » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook