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 :

Regrouper résultats de requête many to many


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Regrouper résultats de requête many to many
    Bonjour

    Je cale sur le problème suivant, qui me parait pourtant simple :
    J'ai 3 tables, relation classique :
    - eleves (id, nom)
    - disciplines (id, nom)
    - eleves_disciplines (id_eleve, id_discipline)

    Je cherche donc bien évidemment à avoir les disciplines par élèves, et je cherche plus particulièrement la forme suivante :
    [
    {
    "nom": "Antoine",
    "discipline": "Géographie"
    },
    {
    "nom": "Marcel",
    "discipline": "Histoire",
    "discipline": "Gym",
    "discipline": "Maths"

    },
    ]

    Mais je bloque sur ce type de résultat :

    [
    {
    "nom": "Antoine",
    "discipline": "Géographie"
    },
    {
    "nom": "Marcel",
    "discipline": "Histoire"
    },
    {
    "nom": "Marcel",
    "discipline": "Gym"
    },
    {
    "nom": "Marcel",
    "discipline": "Maths"
    }
    ]

    Ma requete est sans surprise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT eleves.nom AS nom, disciplines.nom AS discipline
    FROM eleves
    JOIN eleve_discipline
      ON eleve_discipline.eleve = eleves.id
    JOIN disciplines
      ON disciplines_id = eleve_discipline.discipline
    Quelqu'un saurait-il ce que j'oublie?

    Merci d'avance,

    Thib

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Réponse trouvée
    J'ai trouvé la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT eleves.nom, GROUP_CONCAT(discipline.nom) AS discipline
    FROM eleve_discipline
    JOIN eleves
      ON eleves.id = eleve_discipline.eleve
    JOIN disciplines
      ON discipline.id = eleve_discipline.discipline
    GROUP BY eleves.id
    Et voici le résultat :
    [
    {
    "nom": "Antoine",
    "name": "Géographie"
    }
    {
    "id": "Marcel",
    "name": "Histoire,Gym,Maths"
    }
    ]

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 15/01/2014, 18h45
  2. Requête de selection sur table many to many
    Par doogy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/05/2009, 19h44
  3. [EF] Sous-requête Where, Many-to-Many
    Par davcha dans le forum Accès aux données
    Réponses: 7
    Dernier message: 21/01/2009, 15h44
  4. Requête relation Many to Many
    Par alys56 dans le forum JPA
    Réponses: 1
    Dernier message: 20/04/2008, 12h20
  5. Un peu de mal a comprendre le concepte "one-to-many" et "many-to-many"
    Par chriscoolletoubibe dans le forum Hibernate
    Réponses: 4
    Dernier message: 29/03/2007, 18h50

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