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 :

GROUP_CONCAT mutiple dans le CONCAT


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut GROUP_CONCAT mutiple dans le CONCAT
    Bonjour à tous.
    J'ai 3 tables liées par des tables intermédiaires.
    1.legislatures
    id_legis | annee_legis
    1 2002
    2 2006
    2. regions
    id_region | libelle
    1 Sud
    2 Centre
    .......
    3. departements
    id_dpt | libelle
    1 Brazza
    2 Kinsha
    ...
    Et les tables intermédiares :
    4. regions_legislature
    id_region | id_legis
    1 1
    2 1
    ...
    5. departements_region
    id_dpt | id_region
    1 1
    2 1
    ...
    Et cette requete me donne un résultat inattendu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT l.id_legis,
    CONCAT(COUNT(rl.id_region), ' - ', GROUP_CONCAT(r.libelle ORDER BY r.libelle SEPARATOR ", " )) as regions
    FROM legislatures as l
    INNER JOIN regions_legislature as rl ON l.id_legis = rl.id_legis
    INNER JOIN regions as r ON r.id_region = rl.id_region
    INNER JOIN departements_region as dr ON dr.id_region = rl.id_region
    INNER JOIN departements as d ON d.id_dpt = dr.id_dpt
    GROUP BY rl.id_legis
    Moi je veux dans un premier temps pour chaque législature, le nombre de région et la liste des régions.

    Dans une deuxième temps, pour chaque région de la première requête, le nombre de départements et la liste des ces départements.

    Merci d'avance...

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Si, comme en France, un département ne peut se trouver que dans une seule région, je ne vois pas l'intérêt de la table departements_region !
    Une clé étrangère dans la table departement faisant référence à l'ID de la région est suffisante.

    Moi je veux dans un premier temps pour chaque législature, le nombre de région et la liste des régions.
    Il te faut donc effectivement un groupement par législature...
    Dans une deuxième temps, pour chaque région de la première requête, le nombre de départements et la liste des ces départements.
    Et là il te faut un groupement par région.

    Ta requête ne semble couvrir que la première partie.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Si, comme en France, un département ne peut se trouver que dans une seule région, je ne vois pas l'intérêt de la table departements_region !
    En fait ici chez moi, les régions ont subit des éclosions et des aménagements, raison de la departements_region où un département peut se retrouver dans deux régions distinctes.

    Merci d'avance...

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Voici un jeu de résultat que j'attends :
    id_legis | regions
    1 | 2- region A(2- departement 1, departement 2), region B(1- departement 3)
    Explication :
    La législature 1 compte 2 régions A et B, la région compte 2 départements dep 1 et dep 2 et enfin la région B compte 1 seul departement nommé dep 3.
    En regardant de près ce résultat, je suis tenté d'imbriquer un GROUP_CONCAT dans un autre. Est-ce faisable?

    Merci d'avance...

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    GROUP_CONCAT est une spécificité de MySQL qui incite à lui demander de faire autre chose que son boulot : de la cosmétique.

    Ça peut encore aller lorsque les données ne sont pas trop nombreuses et avec un seul regroupement mais là tu atteint les limites de l'acceptable. Comme tu ne sais pas a priori le nombre de région qu'il y a par législature, tu ne sais pas quel est le nombre de colonnes de résultat à retourner. Et comme ce nul de MySQL ne connaît pas les fonctions analytiques, ta requête deviendrait une usine à gaz contre performante, pour autant même qu'elle soit possible !

    C'est au logiciel qui interroge la BDD de présenter le résultat.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juillet 2006
    Messages : 985
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    ...
    C'est au logiciel qui interroge la BDD de présenter le résultat.
    Si je comprends bien, SQL pour sélectionner les données dont j'ai besoin maintenant au langage serveur PHP par exemple pour présenter comme on souhaite?
    Merci d'avance...

Discussions similaires

  1. [XL-2003] Recherche mutiple dans un tableau selon un critère
    Par Achere dans le forum Excel
    Réponses: 2
    Dernier message: 18/12/2010, 10h27
  2. CONCAT() dans SQL - ralentissement
    Par Dsphinx dans le forum Langage SQL
    Réponses: 7
    Dernier message: 13/07/2007, 15h00
  3. [XPath] Concat dans une requete : interdit ?
    Par Thomus38 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/06/2007, 15h11
  4. Mutiple formulaire dans une page HTML
    Par yannickexia dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 21/07/2005, 22h20
  5. Ajouter données dans un champ (concat)
    Par TNorth dans le forum Requêtes
    Réponses: 6
    Dernier message: 09/05/2005, 21h38

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