IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Erreur de syntaxe MySQL


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Par défaut Erreur de syntaxe MySQL
    Bonjour,

    J'ai une erreur dans ma requête mais je ne vois pas ou ce trouve la faute.

    Voici le message d'erreure

    SELECT f.`titre`,f.`date_sortie`,f.`id_film`,f.`affiche`,f.`annee_production`,f.`duree`,f.`genre`,n.`nom_masculin` AS `nom_nationalite`, AVG(c.`note`) FROM `film` f,`critique_film` c,`nationalite` n WHERE f.`id_film` = c.`film` GROUP BY f.`id_film` ORDER BY AVG(c.`note`) DESC LIMIT 5 - Utilisation invalide de la clause GROUP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $query = "SELECT f.`titre`,f.`date_sortie`,f.`id_film`,f.`affiche`,f.`annee_production`,f.`duree`,f.`genre`,n.`nom_masculin` AS `nom_nationalite`, AVG(c.`note`) 
    		FROM `film` f,`critique_film` c,`nationalite` n 
    		WHERE f.`id_film` = c.`film`
    		GROUP BY f.`id_film` 
    		ORDER BY AVG(c.`note`) DESC LIMIT 5";
    Merci au personnes qui pourrai m'aider.

    Salutations

  2. #2
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Salut,

    Déjà il y a un problème (enfin il me semble) tu as trois tables mais seulement une jointure me semble que si tu corrige ça sa sera deja mieux lol

    Après je vois pas pour le group by...

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Salut,

    Essaies avec le GROUP BY après le ORDER BY

  4. #4
    Membre éclairé Avatar de Sekigawa
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 432
    Par défaut
    Citation Envoyé par jml94 Voir le message
    Salut,

    Essaies avec le GROUP BY après le ORDER BY
    Ah ouai aussi lol

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Par défaut
    J'ai essayé j'ai sa comme erreur maintenant

    SELECT f.`titre`,f.`date_sortie`,f.`id_film`,f.`affiche`,f.`annee_production`,f.`duree`,f.`genre`,n.`nom_masculin` AS `nom_nationalite`, AVG(c.`note`) FROM `film` f,`critique_film` c,`nationalite` n WHERE f.`id_film` = c.`film` ORDER BY AVG(c.`note`) DESC LIMIT 5 GROUP BY f.`id_film` - Erreur de syntaxe près de 'GROUP BY f.`id_film`' à la ligne 6

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    bonjour,

    le group by est bien avant le order by
    par contre, il manque une jointure sur ta table : tu relies nationalité à aucune table?

    la requête devrait s'écrire ainsi :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT f.`titre`,f.`date_sortie`,f.`id_film`,f.`affiche`,f.`annee_production`,f.`duree`,f.`genre`,n.`nom_masculin` AS `nom_nationalite`, AVG(c.`note`) 
    FROM `film` f
    JOIN`critique_film` c ON f.`id_film` = c.`film`
    JOIN `nationalite` n ON ...
    GROUP BY f.`id_film` ,f.`id_film`,f.`affiche`,f.`annee_production`,f.`duree`,f.`genre`
    ORDER BY AVG(c.`note`) DESC LIMIT 5";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur de syntax mysql
    Par Morronight dans le forum PHP & Base de données
    Réponses: 29
    Dernier message: 27/04/2011, 16h22
  2. erreur de syntaxe Mysql sur jointure ?
    Par evevev dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/08/2010, 17h00
  3. [MySQL] Erreur de syntaxe MySQL
    Par Yuumu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/12/2008, 18h19
  4. [MySQL] (Encore une) Erreur de syntaxe MySQL
    Par n1n0x dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/04/2008, 18h30
  5. Erreur de syntaxe MySQL
    Par lynal dans le forum Requêtes
    Réponses: 9
    Dernier message: 30/05/2006, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo