Rechercher : dans
Par :

Requete imbriquée

Dernière réponse le 6 jun 2005 à 22:08:24 Lanfeust, le 5 jun 2005 à 00:04:28 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Requete imbriquée » dans :
Google Hacks - Automatiser les requêtes complexes VoirGoogle Hacks est un logiciel open source totalement gratuit qui permet de générer automatiquement des requêtes complexes pour rechercher de la musique, des livres, des programmes, des polices, des vidéos, etc. Google Hacks est une véritable...
SQL - Sous-requêtes VoirExpression des sous-requêtes Effectuer une sous-requête consiste à effectuer une requête à l'intérieur d'une autre, ou en d'autres termes d'utiliser une requête afin d'en réaliser une autre (on entend parfois le terme de requêtes en...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

wolfer, le 6 jun 2005 à 11:14:31

SELECT NomS, PrenomS
FROM STAGIAIRE, INSCRIPTION
WHERE Ta jointure entre STAGIAIRE et INSCRIPTION
AND IdStage='16';

Répondre à wolfer

2

wolfer, le 6 jun 2005 à 11:15:25

Cela devrait normalement marcher...
A suivre..

Répondre à wolfer

3

teebo, le 6 jun 2005 à 11:19:06

Salut


WHERE IdStagiaire IN (SELECT...)

It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo

4

jebok, le 6 jun 2005 à 13:31:36

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 ?...
Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)

Répondre à jebok

5

teebo, le 6 jun 2005 à 13:37:58
  • +3

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 =
It is only by not paying one's bills that one can
hope to live in the memory of the commercial classes.

Répondre à teebo

6

jebok, le 6 jun 2005 à 18:00:07

OK je suis d'accord : IN à la place de =
Mal nommer les choses, c'est ajouter aux malheurs du monde.
(Albert Camus)

Répondre à jebok

7

 boudjeroua, le 6 jun 2005 à 22:08:24
  • +2

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?

Répondre à boudjeroua
Collection CommentÇaMarche.net