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 :

Grouper deux champs d'une même table


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 31
    Points : 29
    Points
    29
    Par défaut Grouper deux champs d'une même table
    Bonjour,

    Je ne sais pas si le titre est correct mais voilà mon problème, je ne pense pas qu'il soit très complexe mais je n'arrive pas à trouver d'aide à ce sujet.

    Pour l'exemple j'ai la structure suivante :

    Ma_Table
    ---------
    id
    nom
    nom_jeune_fille
    prenom

    Je voudrais afficher, sur mon site, des statistiques du style : Tel nom est présent X fois.

    Seulement je voudrais traiter nom et nom_jeune_fille comme un seul champ pour comptabiliser un nom qui pourrait être à la fois dans le champ "nom" et dans le champ "nom_jeune_fille"

    Ex :
    id | nom | nom_jeune_fille | prenom
    ------------------------------------
    1 | durant | dupont | sophie
    2 | simon | durant | jeanne

    J'aimerai avoir comme résultats :
    durant | 2
    dupont | 1
    simon | 1

    J'espère être assez clair... si je ne trouve pas de solution en faisant une requête directe, je passerai par un traitement PHP mais je suis sur qu'on doit pouvoir faire quelque chose avec mysql mais là, je colle.
    Je ne sais pas si je doit utiliser un GROUP BY spécial, un JOIN, etc...

    En tout cas, merci d'avance pour votre aide !

    Bonne journée !

  2. #2
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    tu fais une requete union:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT nom AS nom
    FROM   matable
    UNION
    SELECT nom_jeune_fille AS nom
    FROM   matable


    et ensuite tu count

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT   nom,
             COUNT(*)
    FROM
             ( SELECT nom AS nom
             FROM    matable
     
             UNION
     
             SELECT nom_jeune_fille AS nom
             FROM   matable
             )
    GROUP BY nom

    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 31
    Points : 29
    Points
    29
    Par défaut
    Merci pour ta réponse, c'était presque correct

    Il faut juste rajouter ALL après Union pour ne pas avoir de valeurs uniques, car dans ta proposition, les deux durant étaient "fusionnés" en un seul et donc l'opération COUNT(*) renvoyait 1 pour durant.

    Voici la solution finale pour ceux que ça intéresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT nom, count(*)
    FROM (
     
    SELECT nom AS nom
    FROM matable
    UNION ALL
    SELECT nom_jeune_fille AS nom
    FROM matable
    ) AS ma_nouvelle_table GROUP BY nom

    PS : Il fallait aussi rajouter "AS ma_nouvelle_table" pour éviter l'erreur : #1248 - Every derived table must have its own alias


    Encore merci à toi pour ton aide.

  4. #4
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    Forcément (je me rend compte qu'on est sur le forum mysql)

    bonne continuation...

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

Discussions similaires

  1. Occurence d'une valeur sur deux champs de la même table
    Par arihane dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/02/2015, 20h30
  2. regrouper deux champs d'une même table
    Par marcus crassus dans le forum Access
    Réponses: 1
    Dernier message: 10/09/2014, 13h58
  3. [OpenOffice][Base de données] Générer une clé a partir de deux champs d'une même table
    Par fasfas dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 01/03/2010, 10h33
  4. [MySQL] Jointure: Avec deux champs d'une même table
    Par Vinuto dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/11/2008, 20h10
  5. Jointure entre deux champs d'une même table
    Par oubli dans le forum Requêtes
    Réponses: 8
    Dernier message: 11/12/2007, 16h20

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