Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

MySQL : SELECT spécial avec GROUP BY sur condition ?

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
Dharius
WRInaute passionné
WRInaute passionné

Inscrit le: 06 Avr 2005
Messages: 552

URL permanente de ce messagePosté le : Mar Mai 13, 2008 21:44    Sujet du message: MySQL : SELECT spécial avec GROUP BY sur condition ?

Bonjour,

je voulais savoir si quelqu'un sait si il est possible de faire un GROUB BY sur condition ...

Exemple : j'ai 2 champs (entre autre) dans une table : id et id_pere, et je voudrait grouper par id_pere si id_pere n'est pas null, sinon, si id_pere est null, on groupe pas...

Une requète qui pourrait donner

"SELECT * FROM table WHERE 1 GROUP BY id_pere IF id_pere !=0"

... si seulement c'était si simple... Sad
Une idée ?! Merci !
 
Dharius Visiter le site web du posteur
Bacteries
WRInaute accro
WRInaute accro

Inscrit le: 27 Mai 2004
Messages: 1126
Localisation: France - Nantes

URL permanente de ce messagePosté le : Mar Mai 13, 2008 22:09    Sujet du message: MySQL : SELECT spécial avec GROUP BY sur condition ?

Bizarre comme "envie". Un group by va regrouper par id_pere dans ton cas. Tu auras ceux avec un id_pere null, ceux avec id_pere = 1, ...
Là tu chercherais pas plutôt à trier sur l'id père?
 
Bacteries Visiter le site web du posteur
jcaron
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Fév 2004
Messages: 523
Localisation: Paris

URL permanente de ce messagePosté le : Mar Mai 13, 2008 22:26    Sujet du message: Re: MySQL : SELECT spécial avec GROUP BY sur condition ?

Dharius a écrit:
je voulais savoir si quelqu'un sait si il est possible de faire un GROUB BY sur condition ...

Exemple : j'ai 2 champs (entre autre) dans une table : id et id_pere, et je voudrait grouper par id_pere si id_pere n'est pas null, sinon, si id_pere est null, on groupe pas...

Une requète qui pourrait donner

"SELECT * FROM table WHERE 1 GROUP BY id_pere IF id_pere !=0"

... si seulement c'était si simple... Sad
Une idée ?! Merci !


Je ne suis pas sûr de bien comprendre, mais tu peux essayer:

SELECT COALESCE(id_pere,id),... FROM table GROUP BY 1

Si tu as plus de détails sur ce que tu cherches à faire ça pourrait aider...

Jacques.
 
jcaron Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2440

URL permanente de ce messagePosté le : Mar Mai 13, 2008 23:46    Sujet du message: MySQL : SELECT spécial avec GROUP BY sur condition ?

A je savais pas qu'il y avait coalesce sur php, je l'apprends Smile, je croyais que c'était un truc à oracle -_- Very Happy


Salut Dharius, alors pour que les choses soient claires, id_pere peut etre = 0 ou être NULL ? Car c'est complètement différent.

Je te l'aurais bien faite ta requête mais c'est pas très claire ton histoire de group by avec condition null ou non null Sad. Explique nous plutôt clairement ce que tu veux récupérer parce que faire une requête sans connaitre ce qu'on doit obtenir, y a pas pire -_- Very Happy

Donc tu as par exemple une table comme ceci:

id id_pere
-- -------
1 1
2 2
3 2
4 3
5 0
6 1
7 2
8 5
9 1
10 0

Tu veux que la requête te retourne quoi clairement ?

C'est bêtement ça que tu veux ? :

Code:
SELECT * FROM table WHERE id_pere != 0 GROUP BY id_pere
 
YoyoS Visiter le site web du posteur
jcaron
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Fév 2004
Messages: 523
Localisation: Paris

URL permanente de ce messagePosté le : Mer Mai 14, 2008 0:16    Sujet du message: MySQL : SELECT spécial avec GROUP BY sur condition ?

YoyoS a écrit:
A je savais pas qu'il y avait coalesce sur php, je l'apprends Smile, je croyais que c'était un truc à oracle -_- Very Happy


Ce n'est pas du php mais du SQL... Ceci dit, je suppose que ça existe avec mysql, mais j'en sais trop rien.

Sinon une autre alternative:

SELECT id_pere,... FROM table WHERE id_pere IS NOT NULL GROUP BY id_pere UNION ALL SELECT id_pere,... FROM table WHERE id_pere IS NULL

Enfin, toujours en supposant que j'aie vaguement compris ce qui est voulu...

Jacques.
 
jcaron Visiter le site web du posteur
Dharius
WRInaute passionné
WRInaute passionné

Inscrit le: 06 Avr 2005
Messages: 552

URL permanente de ce messagePosté le : Mer Mai 14, 2008 7:57    Sujet du message: MySQL : SELECT spécial avec GROUP BY sur condition ?

Oui, je me suis mal exprimé : on groupe pas les résultats qui ont id_pere = 0 , par contre on groupe les autres qui ont un id_pere commun
 
Dharius Visiter le site web du posteur
jcaron
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Fév 2004
Messages: 523
Localisation: Paris

URL permanente de ce messagePosté le : Mer Mai 14, 2008 9:58    Sujet du message: MySQL : SELECT spécial avec GROUP BY sur condition ?

Dharius a écrit:
Oui, je me suis mal exprimé : on groupe pas les résultats qui ont id_pere = 0 , par contre on groupe les autres qui ont un id_pere commun


SELECT id_pere,... FROM table WHERE id_pere<>0 GROUP BY id_pere UNION ALL SELECT id_pere,... FROM table WHERE id_pere=0

Jacques.
 
jcaron Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2440

URL permanente de ce messagePosté le : Mer Mai 14, 2008 10:32    Sujet du message: MySQL : SELECT spécial avec GROUP BY sur condition ?

Je savais pas non plus que les opérateurs ensemblistes fonctionnaient sur php, non mysql pardon ;p

A oui c'est l'INTERSECT qui ne va pas Smile
 
YoyoS Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort