GROUP BY répété

Fermé
jujucool - 25 mai 2009 à 09:14
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 - 25 mai 2009 à 16:47
Bonjour,
J'aimerais savoir s'il existe un moyen en mySQL (en ne passant pas par PHP) de ne pas répéter les colonnes groupées?

exemple :
SELECT titre, participant
FROM table GROUP_BY titre
nous donne quelque chose comme

titre1 | participant1
titre1 | participant2
titre1 | participant3
titre2 | participant1

Est-il possible d'avoir un résultat comme cela? :
titre1 | participant1
| participant2
| participant3
titre2 | participant1
A voir également:

3 réponses

Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
25 mai 2009 à 14:05
Malheureusement la chose n'est pas possible en MySQL, pour une raison simple:
une requête sql te renvoie un tableau de résultats qui comporte lui-même des lignes de résultat répondant à ta requête. Or pour obtenir des résultats sous la forme que tu demandes, il faudrait avoir des lignes (celle de participant3 par exemple) où il n'y aurait pas de titre, ce qui n'est pas possible.

Soit dit en passant, ta requête
SELECT titre, participant
FROM table GROUP_BY titre

ne te renverra d'ailleurs pas le résultat que tu exposes mais plutôt quelque chose comme ceci
titre1 | participant1
titre2 | participant1

parce qu'un GROUP BY ne s'utilise que lorsqu'il y a un opérateur arithmétique dans ta requête comme ici :
SELECT nom_magasin, SUM(chiffre_affaire)
FROM liste_magasins
GROUP BY nom_magasin

Pour info, si tu veux obtenir
titre1 | participant1
titre1 | participant2
titre1 | participant3
titre2 | participant1

un simple SELECT titre, participant FROM table suffit.

Bon codage.
0
Merci pour ta réponse :)
Oui je me suis plantée dans la requête c'est vrai :s
Sinon je trouve vraiment dommage que l'on ne puisse pas faire une telle chose (malgré que ça parait logique quand tu l'expliques)
Je vais me rabattre sur PHP et essayer de me coder une fonction qui me fasse ça
Merci encore et bonne après midi
0
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
25 mai 2009 à 16:47
Pas de quoi.
Effectivement c'est dommage de ne pas pouvoir régler ça directement en MySQL mais c'est tout à fait logique comme je l'ai dit précédemment. MySQL ne te fournit que les données, or ce que tu demandes traite plutôt de la mise en forme. Tu devrais pouvoir trouver ton bonheur avec du PHP/MySQL/xHTML.

En tout cas n'hésite pas à t'adresser à un forum spécialisé si t'as des problèmes au niveau programmation, tu auras sans doute de meilleures chances d'obtenir des réponses.

Par exemple ici --> https://forum.phpfrance.com/

Bon codage.

0