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 SELECT


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut Concaténer le résultat de SELECT
    Bonjour à tous,
    Ce matin je patauge sur un problème dont je n'ai trouvé la solution ni sur Google ni sur ce site.
    Je voudrais concaténer le résultat d'une requête "sélect" c'est-à-dire avoir le résultat de toutes les lignes dans une même et unique colonne sur unique ligne je m'explique :
    J'ai une table étudiant avec un id et un id enseignant
    J'ai une table enseignants je souhaite lorsque l'enseignant se connecte que la rêquette récupère tous les étudiants qui ont l'id de l'enseignant renseigné ceci afin d'avoir une seule et unique ligne pour les id "étudiant"
    Est-ce possible ?
    D'avance merci

    Mon code : table1 enseignant, table étudiant, je veux concaténer table2.id afin de n'avoir qu'une seule ligne comme résultat !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT table1.*, table2.id FROM table1
    LEFT JOIN table2 AS etudiant ON etudiant.idEnseignant = table1.id;
    WHERE table1.email =  'sffdsqfqfdqgmail.com'

  2. #2
    Membre confirmé Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Points : 511
    Points
    511
    Par défaut
    Hello !

    Je pense que ce que tu cherches c'est la fonction GROUP_CONCAT

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Merci pour ta réponse,
    Je viens d'essayer qq scripts, à l'évidence je ne maîtrise pas.
    Toi, tu verrai comment le script en utilisant GROUP_CONCAT ?
    Désolé mais C la première fois que j'essaie de scripter avec cette function !

    Cdlt

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Quelque chose de cette forme...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT  table1.*
        ,   GROUP_CONCAT(table2.id) AS  liste 
    FROM    table1
        LEFT JOIN 
            table2 AS etudiant 
            ON  etudiant.idEnseignant = table1.id
    WHERE   table1.email =  'sffdsqfqfdqgmail.com'
    GROUP BY table1.*
    ;
    ... en détaillant la liste des colonnes de table1 !
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Merci pour ta réponse,
    Les choses avancent j'ai une erreur dont je n'arrive pas déterminer l'origine.

    Dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT  table1.*
        ,   GROUP_CONCAT(table2.id) AS  liste 
    FROM    table1
        LEFT JOIN 
            table2 AS etudiant 
            ON  etudiant.idEnseignant = table1.id
    WHERE   table1.email =  'sffdsqfqfdqgmail.com'
    GROUP BY table1.id
    Je récupère l'erreur suivante :

    #1054 - Unknown column 'table2.id' in 'field list'

    Dans le GROUP_CONCAT ???? Grrrrr

    Je ne comprends pas pourquoi, visiblement GROUP_CONCAT est mal structuré !

    Encore merci

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    C'est normal qu'il ne connaisse pas table2.id.
    En effet, table2 n'est pas visible dans cette requête... puisqu'il est aliassé en etudiant.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Oups, ma semaine démarre mal

    Merci ça va mieux bien avec l'alias

    CDLT

    [MaJ] Je viens de compléter le script tout fonctionne à merveille.
    1000 mercis à tous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/09/2013, 11h01
  2. Concaténation du résultat d'un select
    Par lcaya dans le forum SQL
    Réponses: 4
    Dernier message: 16/07/2010, 09h32
  3. [SQL][10g] concaténé resultat d'un select
    Par Psykotik dans le forum Oracle
    Réponses: 4
    Dernier message: 25/01/2006, 14h00
  4. Utiliser le résultat de SELECT Sum dans If
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 33
    Dernier message: 15/11/2005, 09h38
  5. résultat de " select count "
    Par marie253 dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/06/2004, 13h07

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