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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème de choix de jointure

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de choix de jointure

n°1901347
getget
Il y en a qui ont essayé ...
Posté le 02-07-2009 à 01:06:56  profilanswer
 

Bonjour, je vous explique mon problème en version simplifiée:
 
Je fais un système de gestion de notes d'étudiants, et j'ai 3 tables (pour ce qui nous intéresse je simplifie volontairement les tables  / requêtes etc) :
 
etudiant (idEtudiant, Nom, Prenom, etc)
evaluation (idEvaluation, description, date etc)
note (idEtudiant, idEvaluation, Note, Deleted)
 
dans la table note, je dois enregistrer l'historique de ce qu'il s'est passé sur les notes, d'ou le deleted, qui contient NOW() au moment ou une note est "supprimée" (en fait elle ne l'est pas).
 
Ce que je cherche à faire :
 
Afficher tous les étudiants (idEtudiant) pour une évaluation donnée (idEvaluation), avec leur note si elle n'est pas "Deleted", NULL sinon
 
Pour le moment, j'ai ca :
 

Code :
  1. SELECT *
  2.    FROM etudiant
  3.    JOIN evaluation
  4.    LEFT JOIN note USING (idEvaluation, idEtudiant)
  5. WHERE (Deleted=0 OR Deleted IS NULL)


 
Mais ca ne marche pas car si un étudiant à une note Deleted (et pas de note non deleted), il n'est pas dans le resultat de la requete (ce qui est normal vu la construction de la requete).
 
Comment pourrais-je construire ma requete pour que ca fonctionne ?
 
D'avance merci pour le temps que vous allez me consacrer  :hello:


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
mood
Publicité
Posté le 02-07-2009 à 01:06:56  profilanswer
 

n°1901369
Deamon
Posté le 02-07-2009 à 09:06:44  profilanswer
 

getget a écrit :

Afficher tous les étudiants (idEtudiant) pour une évaluation donnée (idEvaluation), avec leur note si elle n'est pas "Deleted", NULL sinon
 
[...]
Mais ca ne marche pas car si un étudiant à une note Deleted (et pas de note non deleted), il n'est pas dans le resultat de la requete (ce qui est normal vu la construction de la requete).


 
Pas compris ce que tu cherches à faire. Ou plutôt je ne vois pas ce qui ne marche pas. Tu veux afficher ceux qui sont pas deleted donc ceux qui sont deleted tu ne les vois pas, normal non ?  :??:

n°1901386
pataluc
Posté le 02-07-2009 à 09:34:53  profilanswer
 

est ce qu'il ne faut pas mettre left devant les 2 joins (et pas seulement le second)?

n°1901391
pataluc
Posté le 02-07-2009 à 09:43:39  profilanswer
 

pataluc a écrit :

est ce qu'il ne faut pas mettre left devant les 2 joins (et pas seulement le second)?


j'crois que j'ai du dire une connerie.

 

en fait vu que le tri que tu veux faire n'est pas au niveau de la liste finale (clause where), mais au niveau du fonctionnement de la jointure, est ce qu'il ne faut pas que tu mette

 
Code :
  1. SELECT *
  2.    FROM etudiant
  3.    JOIN evaluation
  4.    LEFT JOIN note ON
  5.       etudiant.idEtudiant=note.idEtudiant
  6.       AND evaluation.idEvaluation=note.idEvaluation
  7.       AND (note.Deleted=0 OR note.Deleted IS NULL)
 

??

 


Message édité par pataluc le 02-07-2009 à 09:45:31
n°1901826
getget
Il y en a qui ont essayé ...
Posté le 03-07-2009 à 00:08:00  profilanswer
 

Ca marche, je ne savais pas qu'on pouvait mettre une condition aussi développée dans un JOIN ;)


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
n°1901906
pataluc
Posté le 03-07-2009 à 10:48:11  profilanswer
 

getget a écrit :

Ca marche, je ne savais pas qu'on pouvait mettre une condition aussi développée dans un JOIN ;)


moi non plus, mais je l'ai tenté qd même!  :whistle:


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

  Problème de choix de jointure

 

Sujets relatifs
Problème d'accent pour une requête php[Visual C++] Problème conversion System::String ^ et structure
Problème Requête MysqlProbleme calcul : conditions
Petit problème de structure / chaine de caractèreProblème php5.2.10 E_STRICT
Problème installation joomla chez free[RESOLU] Problème étrange avec le Main
[Résolu]Probleme avec des pointeur de structureProbleme oscommerce
Plus de sujets relatifs à : Problème de choix de jointure


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