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

PHP & Base de données Discussion :

Plusieurs GROUP BY avec des champs de noms differents


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut Plusieurs GROUP BY avec des champs de noms differents
    Bonjour a tous,

    J'ai une table basique

    idL nom_1 select_1 nom_2 select_2 nom_3 select_3
    1 Pierre 0 Jean 1 Maurice 0
    2 Jean 1 Pierre 0 Maurice 0
    3 Pierre 0 Jean 1 Maurice 0
    4 Pierre 0 Jean 0 Maurice 1
    5 Pierre 1 Jean 0 Paul 0
    6 Pierre 1 Jean 0 Paul 0

    J'aurai aimé sélectionner tous les noms de cette table en les groupant par eux meme des lors qu'ils on un select_1, ou un select_2 ou un select_3 a 1

    Betement j'ai demarré avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `table` where (nom_1  <>'' and select_1 ='1') or (nom_2 <>'' and select_2='1') or (nom_3<>'' and select_3='1')  GROUP by nom_1  , nom_2, nom_3
    Le but étant d'avoir un tableau affiché final qui indique juste
    Pierre
    Jean
    Maurice


    et pas Paul puisque ce dernier n'a jamais été selctionné et pas non plus plusieurs Pierre ou plusieurs Jean, etc...

    Merci milles fois pour votre aide.
    Excellente journée a tous.
    Olivier

  2. #2
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Il y a ce genre (pas spécialement élégant d'ailleurs ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Select nom_1 from 
    (
    select nom_1 from matable where select_1 = 1 
    union 
    select nom_2 from matable where select_2 = 1 
    union 
    select nom_3 from matable where select_3 = 1 
    ) 
    group by nom_1 
    order by nom_1

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Je ne comprends pas le ".....group by nom " a la fin .. je n'ai aucun champ qui s'appelle nom

    Par ailleurs, cela ne fonctionne pas, j'ai une erreur : Every derived table must have its own alias

    Merci pour ton aide

  4. #4
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    euh oui nom_1 à la place de nom ...
    en fait normalement dans l'union c'est
    le premier nom du champ select
    select nom_1 ...
    qui va être utilisé en retour.

    Maintenant ceci devrait fonctionner aussi ... à tester et/ou s'inspirer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Select mon_nom from 
    (
    select nom_1 as mon_nom from matable where select_1 = 1 
    union 
    select nom_2 as mon_nom from matable where select_2 = 1 
    union 
    select nom_3 as mon_nom from matable where select_3 = 1 
    ) 
    group by mon_nom  
    order by mon_nom

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Merci de continuer a m'aider, mais j'ai toujours le meme resultat :

    MySQL a répondu: Documentation
    #1248 - Every derived table must have its own alias

    Apparement chaque table doit avoir son propre Alias

  6. #6
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Et ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select mon_nom from 
    (
    select nom_1 as mon_nom from matable where select_1 = 1 
    union 
    select nom_2 as mon_nom from matable where select_2 = 1 
    union 
    select nom_3 as mon_nom from matable where select_3 = 1 
    ) mon_union
    group by mon_nom  
    order by mon_nom

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Par défaut
    Ce n'est pas trés beau pour reprendre tes mots mais c'est exactement ce que je voulais, donc merci beaucoup, et excellente journée a toi.

  8. #8
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Ok de même

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

Discussions similaires

  1. Creer un Report avec des champs groupés
    Par madina dans le forum Reports
    Réponses: 9
    Dernier message: 25/06/2010, 17h23
  2. [CR 2008] Requete avec des champs renvoyant plusieurs resultats
    Par caribou_espion dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 13/06/2008, 08h29
  3. Réponses: 40
    Dernier message: 02/12/2007, 16h24
  4. Réponses: 2
    Dernier message: 26/04/2006, 08h53
  5. [word] Generer un document avec des champs
    Par webbulls dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/04/2004, 10h47

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