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 :

Concaténer le résultat de plusieurs requêtes


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Points : 63
    Points
    63
    Par défaut Concaténer le résultat de plusieurs requêtes
    Bonsoir,

    je n'arrive pas à trouver la syntaxe exacte pour concaténer les résultats de plusieurs requêtes MySQL dans une même procédure stockée.
    ex :
    set nom1 = select nom from client where id = 1;
    set nom2 = select nom from client where id = 2;
    set nom3 = select nom from client where id = 3;

    retourner nom1,nom2,nom3

    Je dois récupérer de ma procédure stockée par exemple :
    PAUL PIERRE PATRICK
    dans une seule chaine de caractère

    Merci de vos lumières !

  2. #2
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    utilise le bouton # pour générer une zone de code

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    et nom1 = select nom from client where id = 1;
    set nom2 = select nom from client where id = 2;
    set nom3 = select nom from client where id = 3;
    select concat(nom1,' ',nom2,' ',nom3);
    ou si tu n'as pas besoin de stocker...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select concat(
      (select nom from client where id = 1),' ',
      (select nom from client where id = 2),' ',
      (select nom from client where id = 3)
    );
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Points : 63
    Points
    63
    Par défaut
    Merci Eric,

    Effectivement, je n'ai pas besoin de stocker mes résultats.

    Ton code marche "partiellement" dans mon cas. Lorsque les sous requêtes retournent tous un seul résultat, ça marche.

    Dans les cas suivants, il y a un souci :
    - quand l'une des sous requêtes ne renvoie aucune ligne, au lieu d'avoir PIERRE - - PATRICK, j'ai NULL parce que la seconde sous requête ne me renvoie rien.
    - lorsque l'une des sous requêtes retourne plus d'une ligne aussi cela pose problème, il faudrait mettre tous les résultats sur une seule ligne un espèce d'implode du résultat de chaque sous requête.

    Sinon c'est presque ça.

  4. #4
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    lol faut dire que c'est ce que tu montres dans ton exemple, après comme je le dis souvent...

    si tu veux une solution réelle présente ton problème réel

    au passage:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SET nom2 = SELECT nom FROM client WHERE id = 2;
    il vaut mieux l'écrire:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom into nom2 FROM client WHERE id = 2;
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Points : 63
    Points
    63
    Par défaut
    Le problème est compliqué fonctionnellement, c'est la raison pour laquelle j'ai simplifié
    Mais je crois trouvé une solution de contournement. Merci

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

Discussions similaires

  1. [MySQL] Affichage des résultats de plusieurs requêtes MySQL
    Par Gillou69 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/11/2007, 15h05
  2. Réponses: 6
    Dernier message: 18/09/2007, 17h10
  3. [MySQL] affichage des résultats de plusieurs requêtes
    Par Mathieu72 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/02/2007, 02h19
  4. un seul résultat pour plusieurs requètes
    Par MmoulinexX dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/11/2006, 15h38
  5. Concaténer le résultat d'une requête
    Par maliba dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/06/2006, 04h56

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