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 :

Récupérer plusieur fois la valeur équivalente à l'id dans une table tiers


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut Récupérer plusieur fois la valeur équivalente à l'id dans une table tiers
    Bonjour,

    Voila, j'ai 2 tables :

    Priorisation et ListeBox

    dans Priorisation j'ai plusieurs champs qui correspondent a ce qu'a répondu l'utilisateur a un questionnaire.

    donc dans Priorisation j'ai par ligne(utilisateur) 4 questions :
    q1 : 1
    q2 : 3
    q3 : 1
    q4 : 2

    dans ListeBox, j'ai ce a quoi correspond les chiffres dans Priorisation
    1 = faible
    2 = moyen
    3 = fort

    dans ma requete, plutot que pour le champ q1 remonté "1", pour le champs q2 remonté "3" etc etc je voudrais remonté la valeur correspondante dans ListeBox (faible, fort ou moyen) pour qu'a l'export dans mon xls, j'ai "Faible" et non pas "1" dans la cellule.

    hors comme il y a plusieurs questions, je ne peut pas faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Priorisation 
    LEFT JOIN ListeBox ON listebox_id = q1 
    LEFT JOIN ListeBox ON listebox_id = q2
    donc je voudrais savoir si il y a un moyen de joindre une seule fois la table pour chaque q(q1, q2, q3 et q4)??


    merci de votre aide



    (j'espère avoir été claire dans l'explication de mon problème XD)

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Si je comprends bien, la structure des tables est la suivante :
    ListeBox(listebox_id, listebox_libelle, ...)
    Priorisation(util_id, q1, q2, q3, q4, ...)

    Comme les colonnes q1 à q4 sont des clés étrangères contenant l'identifiant de listebox, je ne vois pas d'autre solution que de faire 4 jointures.

    En fait il y a une erreur de conception. q1 à q4 sont des données de même type et doivent donc faire l'objet d'une autre entité associée à Priorisation.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Comme les colonnes q1 à q4 sont des clés étrangères contenant l'identifiant de listebox, je ne vois pas d'autre solution que de faire 4 jointures.
    comment les faire ? car ce que j'ai essayé ne fonctionne pas

  4. #4
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Si tu procèdes comme tu l'indiquais dans ton premier post, effectivement ça va coincer.
    Lorque l'on se réfère plusieurs fois à une même table il faut aliasser (surnommer) chaque instanciation de la classe.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FROM Priorisation 
    LEFT JOIN ListeBox l1 ON l1.listebox_id = q1 
    LEFT JOIN ListeBox l2 ON l2.listebox_id = q2
    etc..

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    et du coup dans le SELECT, je fait comment pour recupéré le libéllé ?

    pour l'instant je fesais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Q1, Q2, Q3, Q4....
    mais si je met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT listebox_libelle,listebox_libelle, listebox_libelle, listebox_libelle
    j'ai droit a ambiguous

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Et bien utilise justement l'alias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT l1.listebox_libelle AS LibelleQ1, l2.listebox_libelle AS LibelleQ2...
    FROM priorisation p
    INNER JOIN listebox l1 ON p.q1 = l1.listebox_id
    INNER JOIN listebox l2 ON p.q2 = l2.listebox_id
    ...

  7. #7
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Tu préfixes du nom de l'alias l1.Q1, l2.Q2 etc..

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    merci bcp, cela fonctionne

    et j'ai 19 question dans ce questionnaire...


    *prend une grande respiration*

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par hoaxpunk Voir le message
    j'ai 19 question dans ce questionnaire...
    Tu veux dire que tu as 19 colonnes q1 à q19 ?
    Il y a effectivement une erreur de conception !

  10. #10
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Tu veux dire que tu as 19 colonnes q1 à q19 ?
    Il y a effectivement une erreur de conception !
    Doux euphémisme

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 220
    Points : 70
    Points
    70
    Par défaut
    disons que a la base, j'avais rempli ces champs par faible, moyen ou fort, mais plus tard, il a fallu géré cela autrement ! et comme je voulais pas révolutionner la structure de la base en place, bah je me suis adapté

    (tient, MJ, je suis bibi sur phpdeb ^^)

  12. #12
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Citation Envoyé par hoaxpunk Voir le message
    (tient, MJ, je suis bibi sur phpdeb ^^)
    MK, s'il te plaît, ne galvaudons pas les initiales

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

Discussions similaires

  1. Déterminer la Valeur la plus grande dans une table
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 9
    Dernier message: 22/08/2014, 23h35
  2. [AC-2003] Récupérer la valeur d'un champ dans une table
    Par lex89 dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/05/2012, 10h35
  3. Valeur existante ou pas dans une table
    Par Invité dans le forum VBA Access
    Réponses: 9
    Dernier message: 27/05/2008, 17h03
  4. Réponses: 7
    Dernier message: 23/06/2006, 14h52
  5. Copier les valeurs d'un formulaire dans une table
    Par Cyphen dans le forum Access
    Réponses: 4
    Dernier message: 19/06/2006, 10h45

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