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 :

Utilisation de GROUP_CONCAT


Sujet :

Requêtes MySQL

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ecarbill
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2004
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 229
    Par défaut Utilisation de GROUP_CONCAT
    Bonjour,
    jai mis sur place un système de gestion de contact basé sur le principe suivant:

    Chaque personne enregistrée peut:
    - avoir ou non un ou plusieurs contact téléphonique;
    - être ou non connecté à un réseau social, ou tout autre site
    - avoir ou non une ou plusieurs photos (le lien de la photo est enregistré)
    - avoir ou non plusieurs descriptions

    Le MCD correspondant est joint en annexe.

    J’écris une requête qui ramène toutes les personnes (une seule ligne par personne quelque soit le nombre de contacts, de sites, ....). J'ai fait quelques recherches et j'ai trouver qu'il fallait utiliser GROUP_CONCAT, et voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     select 
        p.PERS_ID,p.PERS_NOM as nom,p.PERS_DATE_CONTACT as date_contact, com.COM_NOM AS commune, GROUP_CONCAT(DISTINCT c.contact SEPARATOR '/') contact,GROUP_CONCAT(DISTINCT cmt.DESC_LIBELLE SEPARATOR '-->' ) as commentaire , GROUP_CONCAT(DISTINCT s.SITE_NOM SEPARATOR ':::') site,GROUP_CONCAT(DISTINCT s.SITE_URL SEPARATOR ':::') lien,GROUP_CONCAT(DISTINCT cn.CON_PSEUDO SEPARATOR ':::') pseudo,GROUP_CONCAT(DISTINCT cn.CON_URL SEPARATOR ':::') profil, GROUP_CONCAT(DISTINCT photo.PHOTO_NOM SEPARATOR ':::') photo,ap.APPVALEUR note,ap.APPLIBELLE appreciation,st.RELATION_LIBELLE relation, ast.RELATION_DATE ,ast.RELATION_COMMENTAIRE raison_relation
      from 
          personne p
        LEFT JOIN (habiter h1 left join commune com on((h1.COM_ID = com.COM_ID))) ON h1.PERS_ID=p.PERS_ID
        LEFT JOIN contact c ON c.PERS_ID=p.PERS_ID
        LEFT JOIN description cmt ON cmt.PERS_ID=p.PERS_ID
        LEFT JOIN (etre_connecte cn INNER join site s on((s.SITE_ID = cn.SITE_ID))) ON cn.PERS_ID=p.PERS_ID
        LEFT JOIN photo ON photo.PERS_ID=p.PERS_ID 
        LEFT JOIN (valoir v INNER join appreciation ap on((v.APPID = ap.APPID))) ON v.PERS_ID=p.PERS_ID
        LEFT JOIN (avoir_statut ast INNER join statut st on((ast.IDSTATUT = st.IDSTATUT))) ON ast.PERS_ID=p.PERS_ID
      GROUP BY p.PERS_NOM
    Mais malgré le fait que j'utilise DISTINCT dans GROUP_CONCAT, les contacts sont dupliqués.

    Quelqu'un pourrait-il m'aider à retrouver ce qui va pas dans mon code.
    Images attachées Images attachées  

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

Discussions similaires

  1. [MySQL] Obtenir un tableau sans utiliser GROUP_CONCAT
    Par dedis dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/04/2011, 19h03
  2. Utilisation de GROUP_CONCAT
    Par kamaxime dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/09/2010, 17h17
  3. Utilisation de group_concat avec hibernate
    Par Goupsy dans le forum Hibernate
    Réponses: 3
    Dernier message: 18/03/2010, 11h06
  4. utiliser collate avec GROUP_CONCAT
    Par GLSpirit dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/10/2007, 15h43
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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