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


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut 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é
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Points : 139
    Points
    139
    Par défaut
    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
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    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
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    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
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    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
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    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
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    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
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    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

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

Discussions similaires

  1. [XL-2007] Problème Requête avec Jointure de plusieurs Tables VBA
    Par fleur_d_eden dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2012, 11h03
  2. Problème requête avec jointures multiples
    Par babouu dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/12/2011, 17h16
  3. Réponses: 16
    Dernier message: 20/01/2011, 12h45
  4. Requête avec Jointure (Problème)
    Par nirG95 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/10/2009, 15h13
  5. problème de requète avec jointure
    Par poupsunik dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/05/2007, 00h28

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