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 requête avec jointures


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    problème de requête avec jointures
    Bonjour,

    Je souhaiterais dans une requete Mysql recupérer un Id_demande_intervention ainsi que le ou les noms de donneur d'ordre correspondants (sur la meme ligne de l'id_demande_intervention) de la forme suivante :



    Pour cela, je dispose du schéma des tables suivant :



    Mon début de requete est le suivant :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    select di.id_demande_intervention, do.nom_donneur_ordre from donneur_ordre do, demande_intervention di, redige r where di.id_demande_intervention = r.id_demande_intervention AND do.id_donneur_ordre = r.id_donneur_ordre group by di.id_demande_intervention


    Malheureusement, cette requete n'affiche pas tous les donneurs d'ordre pour un meme id_demande_intervention sur la meme ligne

    Pourriez vous m'aider car je suis dessus depuis 3h
    Merci

  2. #2
    Membre habitué
    et comme ça:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT di.id_demande_intervention, do.nom_donneur_ordre 
    FROM donneur_ordre do, demande_intervention di, redige r 
    WHERE r.id_demande_intervention=di.id_demande_intervention AND r.id_donneur_ordre = do.id_donneur_ordre
    GROUP BY by r.id_demande_intervention


    juste un essai, no warranty

  3. #3
    Candidat au Club
    Citation Envoyé par Wavyx
    et comme ça:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT di.id_demande_intervention, do.nom_donneur_ordre 
    FROM donneur_ordre do, demande_intervention di, redige r 
    WHERE r.id_demande_intervention=di.id_demande_intervention AND r.id_donneur_ordre = do.id_donneur_ordre
    GROUP BY by r.id_demande_intervention


    juste un essai, no warranty
    non ce n'est pas ca
    merci qd meme d'avoir essayé ;-)

  4. #4
    Expert éminent sénior
    il faut utiliser la fonction "GROUP_CONCAT" mais elle est seulement dispo depuis MySQL 4.1

    http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#GROUP-BY-Functions

  5. #5
    Candidat au Club
    Et serait il possible de faire la requete sans utiliser de "group concat" car je n'ai pas MYSQL 4.1 :

    Merci

  6. #6
    Expert éminent sénior
    non ce n'est pas possible de faire directement une requete comme ca

    par contre tu si tu veux afficher un tableau qui est présenté avec les noms concaténés tu peut le faire en PHP

  7. #7
    Candidat au Club
    Mathix, je travaille effectivement avec du PHP

    Avec quelle(s) fonction(s) pourrais je récupérer le tableau sous cette forme via concaténation ?

    Merci pr ton aide

  8. #8
    Expert éminent sénior
    il suffit que tu fasse un test sur l'id, tu n'as pas besoin de fonctions spéciales

    maintenant ca ne concerne plus ce forum donc clique sur "Mettre résolu" en bas du sujet