Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/02/2011, 09h17   #1
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Par défaut Group_concat et colonne

Bonjour,

je travail actuellement sur 3 tables :
- users (id,nom,prenom,idClient)
- droits (id,libelle,nom)
- users_droits (idUser,idDroit)

Je liste donc une certaines partie de mes utilisateurs avec les droits qui leur sont associés de la manière suivante :

Code :
1
2
3
4
5
SELECT u.nom,u.prenom,GROUP_CONCAT(DISTINCT d.nom) 
	FROM users u
		LEFT JOIN users_droits ud ON ud.idUser = u.id
		LEFT JOIN droits d ON ud.idDroit = d.id
	WHERE idClient = 1 GROUP BY u.id
Pour éviter d'exploser la chaine de groupe concat coté script , est il possible de généré de "fausse" colonne avec le résultat du group_concat ?

Concrètement au lieu de :
Code :
Dupont | Jean | Admin,Post
Est il possible d'avoir :
Code :
Dupont | Jean | Admin | Post
Merci
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 09h55   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Comme tu ne sais pas a priori combien il peut y avoir de droits, tu ne peux pas savoir combien de colonnes il faut générer dans le SELECT.
Ce serait possible je pense avec des requêtes récursives, que le mauvais MySQL ne connaît pas.

De toute façon, ce que tu cherches à faire est de la cosmétique et n'est pas le boulot du SGBD mais celui du logiciel qui interroge la BDD.
Déjà que GROUP_CONCAT est une spécificité MySQL hors norme SQL !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2011, 10h01   #3
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
Merci de ta réponse.
C'était effectivement une volonté purement cosmétique (honte à moi ).
Je ferrais donc sans
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h47.


 
 
 
 
Partenaires

Hébergement Web