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 :

Probléme de requete


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Probléme de requete
    Bonjour à tous,

    Je suis en train de tenter de rédiger une requête qui interroge trois tables.
    Voici la structure de mes tables :
    users (table qui donne toute les informations nécessaire de l'utilisateur):
    id
    email
    first_name
    last_name
    etc ...

    parameter (table de paramètre qui enregistre surtout le nom du paramètre
    id (id du paramètre )
    name (nom du paramètre )

    user_parameter_values (table qui permet de connaitre la valeur du paramètre enregistrer dans la table paramètre)
    parameter_id (id du paramètre qui est une clef de la table paramètre)
    user_id (id de l'utilisateur qui est une clef de la table user)
    parametre_value (valeur du paramètre)

    Un utilisateur unique peut avoir plusieurs paramètre.
    Pour le moment ce que j'arrive à faire c'est d'avoir une liste de l'ensemble de mes utilisateurs avec l'ensemble des paramètres.
    J'ai donc "une ligne" par paramètre.

    Ce que je souhaite faire c'est une ligne par utilisateur avec le nom des paramètres et leurs valeurs.

    Ma requete actuel est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT user_id, first_name, last_name, email, name, parameter_value
    FROM users
    RIGHT OUTER JOIN user_parameter_values ON user_parameter_values.user_id = users.id
    LEFT OUTER JOIN parameters ON parameters.id = user_parameter_values.parameter_id
    ORDER BY user_id
    Je ne vois pas comment l'adapter pour afficher une ligne par utilisateur et de plus je ne sais pas si c'est possible de le faire en mysql.

    Merci par avance pour votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Points : 965
    Points
    965
    Par défaut
    Bonjour,

    Regardez du coté de GROUP_CONCAT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT u.user_id, u.first_name, u.last_name, u.email, 
           group_concat(concat(p.name, ':', upv.parameter_value,';') ORDER BY p.name) AS parametres
    FROM users u
    RIGHT OUTER JOIN user_parameter_values upv ON upv.user_id = u.id
    LEFT OUTER JOIN parameters p ON p.id = upv.parameter_id
    GROUP BY u.user_id, u.first_name, u.last_name, u.email
    ORDER BY u.user_id

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Snipah Voir le message
    Bonjour,

    Regardez du coté de GROUP_CONCAT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT u.user_id, u.first_name, u.last_name, u.email, 
           group_concat(concat(p.name, ':', upv.parameter_value,';') ORDER BY p.name) AS parametres
    FROM users u
    RIGHT OUTER JOIN user_parameter_values upv ON upv.user_id = u.id
    LEFT OUTER JOIN parameters p ON p.id = upv.parameter_id
    GROUP BY u.user_id, u.first_name, u.last_name, u.email
    ORDER BY u.user_id
    Comment dire ...
    Sauf merci beaucoup ça fonctionne effectivement trés bien c'est ce que je cherchais.

    Merci

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

Discussions similaires

  1. [EJBQL] Problème de requete
    Par rivierem dans le forum Java EE
    Réponses: 3
    Dernier message: 16/10/2004, 10h05
  2. Problème sous requete MySQL
    Par gavelin dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 10h36
  3. Problème de Requete...
    Par sebiv dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/04/2004, 16h21
  4. Problème de requete avec Innodb
    Par silef dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2004, 12h54
  5. Problème de requete multis-selections
    Par tripper.dim dans le forum SQL
    Réponses: 9
    Dernier message: 03/09/2003, 13h08

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