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

Langage SQL Discussion :

[MySQL] Jointure et Sum


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut [MySQL] Jointure et Sum
    Je fait une requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, pseudo, team, xp_spatiale, xp_terre FROM players WHERE active != 0
    jusqu'a la pas bien compliquer ...

    ensuite j'aimerai que le resultat me retroune en meme temps le nombre de planete que posede un joueur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT SUM(planetes) WHERE planetes.players = players.id
    ou un truc dans ce genre la mais je sais pas faire

    pouvez vous m'aidez

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Salut,

    Est-ce que ceci te convient ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT id, pseudo, team, xp_spatiale, xp_terre, sum(planete.*)
      FROM players INNER JOIN planetes ON players.id = planetes.players
     WHERE active != 0
     GROUP BY id, pseudo, team, xp_spatiale, xp_terre
    [Edit] Ca se rapproche un peu de ça :
    http://www.developpez.net/forums/vie...34720&start=33
    (dans ce topic, il y a une jointure externe, utile au cas où un joueur n'a pas de planètes)
    [/Edit]
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    MySQL a répondu:

    #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 '* ) FROM players INNER JOIN planetes ON players . id = planetes . players WHER' at line 1

  4. #4
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre, count(planetes.players)
      FROM players INNER JOIN planetes ON players.id = planetes.players
     WHERE active != 0
     GROUP BY id, pseudo, team, xp_spatiale, xp_terre
    voila
    par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre, COUNT(planetes.players) 
      FROM players INNER JOIN planetes ON players.id = planetes.players 
     WHERE active != 0 
     GROUP BY players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre 
     ORDER BY.COUNT(planetes.players)
    ça fonctionne pas pk ?

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par dark_vidor
    par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre, COUNT(planetes.players) 
      FROM players INNER JOIN planetes ON players.id = planetes.players 
     WHERE active != 0 
     GROUP BY players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre 
     ORDER BY.COUNT(planetes.players)
    ça fonctionne pas pk ?
    Quel est le message d'erreur ? Pour moi, la syntaxe est correcte (testée sous Oracle), sauf le "." après le ORDER BY, sans doute due à une erreur de copie ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    Erreur
    requête SQL:

    SELECT players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre, COUNT( planetes.players )
    FROM players
    INNER JOIN planetes ON players.id = planetes.players
    WHERE active !=0
    GROUP BY players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre
    ORDER BY.COUNT(

    planetes.players
    )
    LIMIT 0 , 30
    MySQL a répondu:

    #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 '( planetes . players ) LIMIT 0, 30' at line 1

  7. #7
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par dark_vidor
    SELECT players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre, COUNT( planetes.players )
    FROM players
    INNER JOIN planetes ON players.id = planetes.players
    WHERE active !=0
    GROUP BY players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre
    ORDER BY.COUNT(planetes.players)
    Tu as un POINT (souligné en rouge ci-dessus) entre ORDER BY et COUNT, est-ce que ça fonctionne mieux si tu l'enlèves ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  8. #8
    Membre régulier Avatar de dark_vidor
    Homme Profil pro
    Élève
    Inscrit en
    Janvier 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Janvier 2005
    Messages : 321
    Points : 118
    Points
    118
    Par défaut
    Erreur
    requête SQL:

    SELECT players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre, COUNT( planetes.players )
    FROM players
    INNER JOIN planetes ON players.id = planetes.players
    WHERE active !=0
    GROUP BY players.id, players.pseudo, players.team, players.xp_spatiale, players.xp_terre
    ORDER BY COUNT( planetes.players )
    LIMIT 0 , 30
    MySQL a répondu:

    #1111 - Invalid use of group function

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

Discussions similaires

  1. Mysql : jointure et fonction sum
    Par moimoi78 dans le forum Requêtes
    Réponses: 1
    Dernier message: 16/05/2011, 13h53
  2. Requete Mysql + jointure + tri : arhfh!
    Par Amara dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/06/2006, 14h24
  3. [MySQL] Jointure correcte ?
    Par tochbee dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/01/2006, 10h56
  4. [MySQL] Jointure sur une table déjà jointe
    Par genova dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/10/2005, 23h54
  5. [MySQL] - jointure de tables
    Par yelbied dans le forum Requêtes
    Réponses: 7
    Dernier message: 12/10/2005, 17h34

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