{MySQL} requete

Bonjour,

je suis en charge du developpement d'une application pour gerer une competition d'athletisme.Le classement de la competition se fera en additionant les points des 5 meilleures performances.
j'ai une table athlete :
*licence*nom*prenom*club*sexe*
et une table competition:
*id*epreuve*performance*score*id_athlete(fk ->athlete.licence)*club*
Il me faut donc u classement par epreuve des 5 meilleures scores.J'ai essayé quelque chose comme
select distinct athlete.nom,competition.epreuve,athlete.prenom,competition.score
    from competition a , athlete
    where 5=(select sum (distinct epreuve.score)
	     from competition b
             where a.score <=b.score)
             and 
             where sexe=athlete.sexe
             and 
             where epreuve =competition.epreuve
group by competition.epreuve

Pour infos les tables sont inodb

J'ai une erreur mysql qui n'apprecie pas la copie "competition a" donc pas moyen de debuger la requete .
J'aimerais savoir pourquoi mysql n'accepte pas la copie "competition a",dans un premier temps ,puis si quelqu'un aurait une idée pour ma requete.

merci d'avance.
Configuration: Windows XP
Firefox 3.5.7

3 réponses

  1. Bonjour,
    Essaye en rajoutant AS pour changer le nom de ta table

    from competition AS a
    et
     from competition AS b
    1. c'est bien tenter effectivement mais j'ai toujours une erreur .
      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'distinct competition.score)
               from competition as b
                   where a.sco' at line 3 


      Ma requete :
      select distinct athlete.nom,competition.epreuve,athlete.prenom,competition.score
          from competition as a , athlete
          where 5=(select sum (distinct competition.score)
      	     from competition as b
                   where a.score <=b.score)
                   

      Merci Drandt a ta contribution
      1. Webmaster
        Bonjour,

        Je n'ai pas controlé ta requête d'un point de vue pertinence, mais pour la syntaxe : tu dois faire référence aux ALIAS et pas à la table d'origine dans tes SELECT ...
        Sinon, Mysql n'a aucun moyen de savoir à quelle instance de table (a ou b dans ton exemple) tu fais référence ...

        Ex de code corrigé (vérifie la pertinence des a VS b !)
        select distinct athlete.nom,a.epreuve,athlete.prenom,a.score
            from competition a , athlete
            where 5=(select sum (distinct epreuve.score)
        	     from competition b
                     where a.score <=b.score)
                     and 
                     where b.sexe=athlete.sexe
                     and 
                     where b.epreuve =a.epreuve
        group by a.epreuve
        


        Bon courage