Problème avec left join [Résolu]

Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
13 mars 2014
- - Dernière réponse : fallpoint
Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
13 mars 2014
- 16 sept. 2013 à 14:16
bonsoir à tous je viens solliciter votre aide sur un problème que je n'arrive pas à résoudre depuis trois jours. Je veut afficher les informations concernant un élève sur un test comme suit:
j'arrive à afficher toutes les informations si je n'associe pas le note de l'élève, mais dés que j'essaie d'ajouter une note il y'a erreurs voici ma requête
 String sql="select libelle,date_test,nom_el,prenom_el,date_naiss,sexe,classe,nom_ecole,nom_iden,nom_academie,note"
                    + " FROM (((((((TYPE_TEST"
                    + " RIGHT JOIN TEST ON TEST.code_type_test=TYPE_TEST.code_type_test)"
                    + " RIGHT JOIN TEST_ELEVE ON TEST_ELEVE.code_test=TEST.code_test)"
                    + " RIGHT JOIN ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve)"
                    + " LEFT JOIN ECOLE ON ELEVE.code_ecole=ECOLE.code_ecole)"
                    + " LEFT JOIN IDEN ON ECOLE.code_iden=IDEN.code_iden)"
                    + " LEFT JOIN ACADEMIE ON ACADEMIE.code_academie=IDEN.code_academie)"
                    + " LEFT JOIN (select SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis "
                    + "AND DISCIPLINE.nom_dis='mathematique')"
                    + " ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve)";
Afficher la suite 

5 réponses

Messages postés
14569
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 octobre 2019
136
0
Merci
Bonsoir,

Quelle est l'erreur ?
Commenter la réponse de NHenry
Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
13 mars 2014
2
0
Merci
salut voici l'erreur afficher
[Microsoft][Pilote ODBC Microsoft Access] Expression JOIN non support?e.
Commenter la réponse de fallpoint
Messages postés
14569
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 octobre 2019
136
0
Merci
LEFT JOIN (select SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis "
                    + "AND DISCIPLINE.nom_dis='mathematique')"
                    + " ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve)


Un Left Join d'une sous-requête qui ne retourne qu'un résultat ?
Pourquoi ne pas faire directement une sous requête dans le champ ?

SELECT ..., (SELECT ... ) AS NomChamp, ... FROM ...

Commenter la réponse de NHenry
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
10
0
Merci
Salut,

T'as pas un souci avec "ELEVE" ?

Tu fais une première jointure avec une table ELEVE :
RIGHT JOIN ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve 


puis une seconde avec ta sous requete à laquelle tu donnes l'alias ELEVE...
LEFT JOIN (select SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis
AND DISCIPLINE.nom_dis='mathematique')
ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve


En plus dans cette seconde jointure, tu ne prends pas le code_eleve... Donc comment veux-tu que la jointure fonctionne ?

Essaie avec ça (en supposant qu'il y a bien un code_eleve dans NOTES:
LEFT JOIN (select code_Eleve, SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis
AND DISCIPLINE.nom_dis='mathematique' group by code_eleve)
NOTES_ELEVE ON NOTES_ELEVE.code_eleve=TEST_ELEVE.code_eleve


Commenter la réponse de sp40
Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Statut
Membre
Dernière intervention
13 mars 2014
2
0
Merci
Merci à tous sa marche maintenant
Commenter la réponse de fallpoint