MySQL : SELECT spécial avec GROUP BY sur condition ?
8 messages
• Page 1 sur 1
-

Dharius - WRInaute impliqué

- Messages: 840
- Inscription: 6 Avr 2005
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...
Une idée ?! Merci !
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...
Une idée ?! Merci !
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
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...![]()
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.
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
A je savais pas qu'il y avait coalesce sur php, je l'apprends
, je croyais que c'était un truc à oracle -_-
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
. 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 -_-
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 ? :
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
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: Tout sélectionner
SELECT * FROM table WHERE id_pere != 0 GROUP BY id_pere
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
YoyoS a écrit:A je savais pas qu'il y avait coalesce sur php, je l'apprends, je croyais que c'était un truc à oracle -_-
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
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
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.
8 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [SQL] Select, Distinct, Max, Group by et autres fariboles
- Requête mysql avec GROUP BY
- MySQL GROUP BY sur le dernier enregistrement
- [MySQL] Récupérer la première ligne d'un GROUP BY
- Formulation d'un requête mysql : MAX, COUNT et GROUP BY
- Problème condition LIKE pour MySQL
- Select where MYSQL
- Update / Select et Mysql
- fONCTION select mysql
- [MySQL] : select de 2 tables et mysql_fetch_assoc
- Du nouveau du côté des laboratoires de Google : Google Labs - 20-05-2002
- Accord entre Ask Jeeves et Google - 18-07-2002
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Mort du META tag "keywords" - 02-10-2002
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Outils Google pour les entreprises : Google Agency Toolkit - 01-03-2009
- Google Calendar API - 20-04-2006
- De la publicité ciblée dans les cartes de Google Local - 31-03-2006
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


