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

  1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
     
    Salut

    WHERE IdStagiaire IN (SELECT...)

    19
  2. 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
  3. wolfer
     
    SELECT NomS, PrenomS
    FROM STAGIAIRE, INSCRIPTION
    WHERE Ta jointure entre STAGIAIRE et INSCRIPTION
    AND IdStage='16';
    0
  4. wolfer
     
    Cela devrait normalement marcher...
    A suivre..
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jebok Messages postés 371 Date d'inscription   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
    1. teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention   1 797
       
      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
      1. jebok Messages postés 371 Date d'inscription   Statut Membre 51 > teebo Messages postés 33585 Date d'inscription   Statut Contributeur Dernière intervention  
         
        OK je suis d'accord : IN à la place de =
        0