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 ne donne pas le resultat souhaité [MySQL-5.7]


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut GROUP CONCAT ne donne pas le resultat souhaité
    Bonjour,

    J'ai 3 tables : une contenant des "biens" (avec id_bien), une autre contenant des "activites" avec id_activite et activite en clair, la derniere servant de table de liaison entre les biens et les activités (act.exercees) (avec fk_id_bien / fk_id_activite)
    Voici ma requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT ..., ... ,... ,
    				( SELECT GROUP_CONCAT( activite ORDER BY activite ASC SEPARATOR ", ")
    						FROM biens
    						JOIN act_exercees ON fk_id_bien = id_bien
    						JOIN activites ON id_activite = c_fk_id_activite ) AS liste_activites
    					FROM biens
    					JOIN ... ON ... = ... 
     					WHERE ... = ...
    :
    La requête fonctionne mais
    J'obtiens la liste de toutes les activités de ma table dans le champs liste_activites alors que je souhaiterais obtenir QUE les activités exercées pour le bien sélectionné.

    Merci de votre aide,

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 970
    Par défaut
    Ben où est la clause Where correspondante aux souhaits ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Bonjour et merci de ton aide
    voila la requête complète qui me renvoie "#1142 - La commande 'SELECT' est interdite à l'utilisateur" quand je la teste dans php myadmin donc je cherche pourquoi mais je ne peux pas en dire plus car je n'ai pas (encore) trouvé .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT C.com_reference as reference, C.com_prix as prix, C.com_prix_murs as prix_murs, C.com_departement as zone, M.bb_membres_prenom as prenom, M.bb_membres_nom as nom,
    				 (SELECT GROUP_CONCAT( A.bbir_activite SEPARATOR ", ")
    						FROM C.bbir_commerces
    						JOIN bbir_c_activites_exercees AE ON AE.fk_id_commerce = C.idbbir_commerces
    						JOIN bbir_activite A ON A.idbbir_activite = AE.c_fk_id_activite
    						WHERE C.idbbir_commerces = AE.fk_id_commerce ) AS liste_activites
    					FROM C.bbir_commerces
    					JOIN M.bb_membres ON M.idbb_membres = C.com_fk_idbb_membres 
    					WHERE C.com_statut = "Active"

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 970
    Par défaut
    Bonsoir,
    Je suis assez dérouté par la notation de la source "C.bbir_commerces" dans la clause FROM.
    Écrit tel quel il s'agit de la table bbir_commerce du schéma(ou database) C

    Ce qui est différent de "bbir_commerces C".
    Cette notation "aliasse" la source bbir_commerces en tant que C.

    Ce qui donne du sens à la syntaxe lors de la désignation de la colonne "C.com_reference".

    Voici une requête me semble plus correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    SELECT LA.com_reference as reference
        , LA.com_prix as prix
        , LA.com_prix_murs as prix_murs
        , LA.com_departement as zone
        , M.bb_membres_prenom as prenom
        , M.bb_membres_nom as nom
        , LA.liste_activites
    FROM    
        (SELECT  C.com_fk_idbb_membres
            , C.com_reference as reference
            , C.com_prix as prix
            , C.com_prix_murs as prix_murs
            , C.com_departement as zone,
            , GROUP_CONCAT( A.bbir_activite SEPARATOR ", ") as liste_activites
            FROM bbir_commerces C
                JOIN bbir_c_activites_exercees AE 
                    ON AE.fk_id_commerce = C.idbbir_commerces
                JOIN bbir_activite A 
                    ON A.idbbir_activite = AE.c_fk_id_activite 
            WHERE C.com_statut = "Active"
        ) LA
        JOIN bb_membres as M 
            ON M.idbb_membres = LA.com_fk_idbb_membres

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 185
    Par défaut
    Merci à tous les deux (avec le where c'etait mieux)

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

Discussions similaires

  1. open args ne me donne pas l'enregistrement souhaité
    Par Salsaboy60 dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/01/2014, 15h44
  2. Script vba ne donne pas le resultat souhaité
    Par developpeur82 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/01/2013, 17h18
  3. comptage ou somme qui ne donne pas le resultat attendu
    Par JeAn-PhI dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/02/2010, 14h47
  4. précision dans matlab ne donne pas le resultat reel
    Par abidineb dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/12/2009, 14h37
  5. [C#/DataView] Pourquoi mon tri ne donne pas le resultat escompté ?
    Par Low-Fi dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/08/2006, 22h15

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