|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 22 ![]() |
Bonjour,
j'ai besoin d'aide pour la formation d'une requête dans MySQL 5.5 permettant d'avoir la moyenne de la durée des tournois pour une saison. Voici plus d'information: J'ai une table "tournoi" dans ma base de donnée qui contient diverses informations pour des tournois de jeux de cartes. Voici les champs : date type date qui est la date du tournoi et clé primaire type type varchar(10) qui est le type du tournoi saison type year(4) qui fait référence à la saison pour laquelle le tournoi est joué. heureDebut type time qui est l'heure de début du tournoi. J'ai également une table "elimination" qui contient: tournoiDate type date qui est la date du tournoi et clé étrangère membreSurnomAEteElimine varchar(20) membreSurnomEliminePar varchar(20) heure datetime qui est la date/heure d'élimination. Je précise que je ne veux pas devoir modifier ces champs, car ils sont modélisé comme cela pour une raison particulière. Ex: saison ne peut pas être déduit de date, car on peut rattraper un tournoi annulé l'année suivante, etc... A présent, je peux déduire la durée d'un tournoi de la saison avec un TIMEDIFF() entre CONCAT( date, " ", heureDebut ) de la table tournoi et l'heure de fin qui correspond a la dernière élimination de ce tournoi, donc "...max(heure) FROM elimination...". Voici ma requête qui fonctionne Code :
Avez-vous une solution a me présenter afin que je n'ai pas besoin de rajouter un champ "durée" dans la table Tournoi, car ce ne serait pas très logique d'un point de vue redondance, vu que c'est un champ qui peut être déduit... En espérant avoir réussi à me faire comprendre dans mon explication, je vous remercie d'avance. Salutations Miam84 |
||
|
|
00
|
|
|
#2 | ||||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Tu fais une jointure inutile pour récupérer la dateDebut :
Je ne pense pas qu'il soit nécessaire de passer par une sous-requête : Code :
Code :
Il ne faut pas nommer une colonne date car c'est un mot clé réservé. |
||||
|
|
10
|
|
|
#3 | ||
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 22 ![]() |
Merci skuatamad pour ta réponse
,en effet en ce qui concerne le champ date ce n'est pas au top, mais j'ai repris le code tel quel et la modification de la DB entraînerai un remaniement de tout les codes appellant, donc je me dis tant que ça n'induit pas de fatal error j'essaie de faire avec... Pour ce qui est du résultat, si j'implémente ta requête, ça a l'air de marcher nickel, il y a juste un truc que je ne comprend pas c'est ce qui m'arrive en retour: Code :
|
||
|
|
00
|
|
|
#4 | ||||||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Effectivement le résultat est étrange :
Code :
Code :
Code :
|
||||||
|
|
10
|
|
|
#5 |
|
Invité régulier
![]() Étudiant Inscription : juin 2011 Messages : 22 ![]() |
Et ben...
trop beau, ça à l'air d'aller nickel. ![]() Un grand merci à toi et à bientôt ++ Miam84 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com