Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1488 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème de jointures multiples

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de jointures multiples

n°867907
Noisequik
Posté le 08-10-2004 à 12:03:09  profilanswer
 

Bonjour, j'ai une petite base contenant les 5 tables suivantes :
 
Unités
|
exercices
|
questions --- réponses
                       |
                    élèves
 
Je souhaite afficher les questions avec toutes les données qui sont associées.
 
J'ai donc fait une requête du genre :
 
SELECT * FROM question
LEFT JOIN réponse ON (...)
LEFT JOIN élèves ON (...)
JOIN exercice ON (...)
JOIN unité ON (...)
 
Le problème est que si je spécifie un élève qui n'a pas encore de réponse, les questions ne vont pas s'afficher.
 
Est-ce que je devrai faire 2 requêtes ??


Message édité par Noisequik le 08-10-2004 à 12:04:38
mood
Publicité
Posté le 08-10-2004 à 12:03:09  profilanswer
 

n°867918
skeye
Posté le 08-10-2004 à 12:19:47  profilanswer
 

Tu n'as pas d'autres liens que ceux indiqués entre ces tables?


---------------
Can't buy what I want because it's free -
n°867941
Noisequik
Posté le 08-10-2004 à 12:52:49  profilanswer
 

hum si après y a pleins d'autres tables (professeurs, catégorie, aide...)
mais qui n'interviennent pas dans ma requête pour l'instant...

n°868036
gizmo
Posté le 08-10-2004 à 14:38:12  profilanswer
 

Pour le moment, tel que tu définis ta question ("Je souhaite afficher les questions avec toutes les données qui sont associées." ), la requète "SELECT * FROM questions" suffit. Donc soit tu expliques mieux ce que tu recherches, soit tu as déjà la réponse.

n°868038
skeye
Posté le 08-10-2004 à 14:39:10  profilanswer
 

...et si tu n'as effectivement que ça comme liens entre les tables présentées je m'inquiète pour la cohérence de ta structure...:/


---------------
Can't buy what I want because it's free -
n°868065
Noisequik
Posté le 08-10-2004 à 14:54:36  profilanswer
 

Alors en gros je souhaiterais afficher les questions qui correspondent à l'exercice et à l'unité voulus (exemple : les questions de l'exercice 3 de l'unité 4)
 
Ainsi que les réponses qui sont associées à ces questions (généralement vides excepté dans le cas ou l'élève aurait déjà répondu)
 
Skeye : qu'est-ce qu'il y aurait d'inquiétant ? le fait qu'il manque des tables ou que les jointures ne seraient pas suffisantes ?

n°868072
gizmo
Posté le 08-10-2004 à 15:02:09  profilanswer
 

Noisequik a écrit :

Skeye : qu'est-ce qu'il y aurait d'inquiétant ? le fait qu'il manque des tables ou que les jointures ne seraient pas suffisantes ?


J'aurais plutôt dis le fait que si tes réponses ne sont pas des QCMs ton modèle ne tient pas la route.
 
Sinon, je ne vois pas en quoi, tel que tu le décrit, le fait de ne pas avoir les questions sans réponses soit un problème. Mais si tu veux vraiment les avoir, utilises plutôt un mix de inner join avec des outer join

n°868074
skeye
Posté le 08-10-2004 à 15:03:10  profilanswer
 

Noisequik a écrit :

Alors en gros je souhaiterais afficher les questions qui correspondent à l'exercice et à l'unité voulus (exemple : les questions de l'exercice 3 de l'unité 4)
 
Ainsi que les réponses qui sont associées à ces questions (généralement vides excepté dans le cas ou l'élève aurait déjà répondu)
 
Skeye : qu'est-ce qu'il y aurait d'inquiétant ? le fait qu'il manque des tables ou que les jointures ne seraient pas suffisantes ?


Si tu n'as pas de réponses, étant donné que tu n'as pas d'autre lien entre les questions et les élèves c'est normal que tu ne puisses avoir les élèves...[:skeye]
 
Tout dépend de ce que signifient tes données exactement, en fait...
Par exemple si tu suis un modèle de style universitaire, il me parait difficile à comprendre que les élèves ne soient liés aux unités que via leurs réponses aux exercices de cette unité...


---------------
Can't buy what I want because it's free -
n°868080
Noisequik
Posté le 08-10-2004 à 15:09:05  profilanswer
 

C'est à dire que les questions sont les mêmes pour tout le monde.
 
un élève se log, réponds aux questions, et celles-ci seront enregistrées dans la table réponse avec l'identifiant de l'élève.
 
La table réponse contient donc le numéro de la question, la réponse et le numéro de l'élève

n°868086
skeye
Posté le 08-10-2004 à 15:17:50  profilanswer
 

Bon, dans ce cas ça devrait être bon...quel est le problème exactement? Tu veux obtenir quoi comme résultat avec ta requête? [:urd]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 08-10-2004 à 15:17:50  profilanswer
 

n°868091
Noisequik
Posté le 08-10-2004 à 15:21:02  profilanswer
 

En fait je voudrais afficher mes questions, ainsi que les réponses associées déjà données par l'élève en question( s'il y en a)
 
Le problème est que si je n'avais pas de réponse, la question ne s'affichait pas.
 
J'ai cependant trouvé une solution (provisoire) en créant des réponses vierges à la première visite d'élève, mais je ne sais pas si c'est la meilleure des solutions

n°868095
skeye
Posté le 08-10-2004 à 15:28:25  profilanswer
 

et avec un outer join?
http://www.1keydata.com/sql/sqlouterjoin.html


Message édité par skeye le 08-10-2004 à 15:29:08

---------------
Can't buy what I want because it's free -
n°868125
Noisequik
Posté le 08-10-2004 à 15:49:29  profilanswer
 

comme ça ?
 
SELECT * FROM question
LEFT OUTER JOIN réponse ON (...)
LEFT OUTER JOIN élèves ON (...)
JOIN exercice ON (...)
JOIN unité ON (...)  
 
Ca ne change rien :-(
 
Je suis sous mySQL et PHP au fait


Message édité par Noisequik le 08-10-2004 à 15:52:22
n°868132
skeye
Posté le 08-10-2004 à 15:51:48  profilanswer
 

J'ai pas l'impression que mysql sache faire ce type de jointure...:/


---------------
Can't buy what I want because it's free -
n°868135
Noisequik
Posté le 08-10-2004 à 15:53:12  profilanswer
 

ok merci quand même.
 
je vais rester sur ma solution de créer des réponses vierges, et après je fais des update à la place des insert :-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème de jointures multiples

 

Sujets relatifs
Problème avec une requête SQL comprenant "in"Problème de declaration de sous-class
[HTML/CSS] Problème taille police dans tableau sous IE [RESOLU][Oracle] Problème de performances Instr et CLOB
[PHP]probleme liste deroulante sous IEProbleme avec la fonction val()
[VB] problème listboxProbleme avec mes evenements
probleme avec la longueur de la page de mon site??Aux amateur de difficultés - Problème de hauteur de cellules
Plus de sujets relatifs à : Problème de jointures multiples


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR