Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2850 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Ordre par défaut dans un Select

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ordre par défaut dans un Select

n°1245130
Noisequik
Posté le 14-11-2005 à 13:50:11  profilanswer
 

Bonjour,
 
lors d'une simple requête select *    
 
j'ai les résultats suivants :
 
 
Id   ...
 
80   ....
99   ...
100   ...
101   ...
81   ...
82   ...
102   ...
 
Comme vous pouvez le voir, le numéro automatique n'est pas dans l'ordre.
Est-ce que l'affichage se fait en fonction de la date d'insertion ???
 
Comment faire pour modifier cet ordre ? Je ne peux pas utiliser "order by" car après j'utilise "group by" dans ma requête, sur plusieurs table...
 
 

mood
Publicité
Posté le 14-11-2005 à 13:50:11  profilanswer
 

n°1245132
skeye
Posté le 14-11-2005 à 13:54:24  profilanswer
 

Depuis quand on ne peut pas utiliser order by et group by en même temps?[:mlc]


---------------
Can't buy what I want because it's free -
n°1245136
Beegee
Posté le 14-11-2005 à 13:57:18  profilanswer
 

+1
 
tu fais tes GROUP BY nécessaires, et à la fin, le ORDER BY qui va bien.

n°1245142
Noisequik
Posté le 14-11-2005 à 14:03:06  profilanswer
 

malheureusement cela ne me donne pas le bon résultat car ca me classe le résultat final, et moi j'aimerais faire le order by avant le group by...

n°1245143
skeye
Posté le 14-11-2005 à 14:04:16  profilanswer
 

[:chacal_one333]
 
T'as pas moyen via un order by un peu plus sioux d'arriver à ce que tu veux?:o


---------------
Can't buy what I want because it's free -
n°1245145
Noisequik
Posté le 14-11-2005 à 14:11:50  profilanswer
 

Je ne sais pas comment faire.
 
En gros quand je fais mon select sur 2 table j'obtiens ceci

 
 
IDTable1     IDTable2
 
1               101
3               102
1               84
2               86
2               87
3               88
4               103
 
avec le group by j'obtiens cela
 
 
 
IDTable1         IDTable2
 
1               101
2               86
3               102
4               103
 
Alors que j'aimerais ceci
 
IDTable1         IDTable2
 
1               84
2               86
3               88
4               103

n°1245148
skeye
Posté le 14-11-2005 à 14:16:40  profilanswer
 

On peut voir la requête que tu fais? Je saisis pas comment tu arrives à ça...? :??:


---------------
Can't buy what I want because it's free -
n°1245188
Noisequik
Posté le 14-11-2005 à 14:30:06  profilanswer
 

En gros ca donne :
 
SELECT IDTable1, IDTable2 FROM table2
JOIN table1 ON (table2.reftable1 = table1.IDTable1)
group by IDTable1
 

n°1245199
skeye
Posté le 14-11-2005 à 14:34:22  profilanswer
 

...et si tu faisais bêtement
 
select id_t1, min(id_t2)
from table2 join table1 on (...)
group by id_t1
 
:??:


---------------
Can't buy what I want because it's free -
n°1245209
mrbebert
Posté le 14-11-2005 à 14:38:39  profilanswer
 

Noisequik a écrit :

En gros ca donne :
 
SELECT IDTable1, IDTable2 FROM table2
JOIN table1 ON (table2.reftable1 = table1.IDTable1)
group by IDTable1
ORDER BY IDTable2

[:proy]  

mood
Publicité
Posté le 14-11-2005 à 14:38:39  profilanswer
 

n°1245211
skeye
Posté le 14-11-2005 à 14:40:00  profilanswer
 


 
je sais pas comment ça s'exécute, ça...m'étonnerait qu'il trie avant de faire le group by, et dans ce cas il ne triera que les mauvaises valeurs...


---------------
Can't buy what I want because it's free -
n°1245218
Noisequik
Posté le 14-11-2005 à 14:43:42  profilanswer
 

oui ta solution marche très bien Skeye ! Merci beaucoup, je ne m'y connais pas assez pour trouver des fonctions comme celles-ci !!
 
Maintenant il me reste plus qu'a remplacer id_t2 par min(id_t2) dans mon code ;-)

n°1245272
mrbebert
Posté le 14-11-2005 à 15:07:53  profilanswer
 

skeye a écrit :

je sais pas comment ça s'exécute, ça...m'étonnerait qu'il trie avant de faire le group by, et dans ce cas il ne triera que les mauvaises valeurs...

Nan c'est bon, j'ai (enfin :D ) compris ce qu'il voulait obtenir :o

n°1245455
cinocks
Posté le 14-11-2005 à 17:46:06  profilanswer
 

Noisequik a écrit :

Bonjour,
 
lors d'une simple requête select *    
 
j'ai les résultats suivants :
 
 
Id   ...
 
80   ....
99   ...
100   ...
101   ...
81   ...
82   ...
102   ...
 
Comme vous pouvez le voir, le numéro automatique n'est pas dans l'ordre.
Est-ce que l'affichage se fait en fonction de la date d'insertion ???
 
Comment faire pour modifier cet ordre ? Je ne peux pas utiliser "order by" car après j'utilise "group by" dans ma requête, sur plusieurs table...


 
Un ORDER BY fonctionne tres bien apres un GROUP BY :ange:
 
les enregistrements sans tris sont retournés dans l'ordre d'apparition à la sortie d'execution de la requete.


---------------
MZP est de retour
n°1245456
cinocks
Posté le 14-11-2005 à 17:48:30  profilanswer
 

Noisequik a écrit :

En gros ca donne :
 
SELECT IDTable1, IDTable2 FROM table2
JOIN table1 ON (table2.reftable1 = table1.IDTable1)
group by IDTable1


 
Et il sert à quoi ton GORUP BY. Tu ne groupes rien :heink:


Message édité par cinocks le 14-11-2005 à 17:50:11

---------------
MZP est de retour
n°1245465
Beegee
Posté le 14-11-2005 à 18:00:28  profilanswer
 

C'est clair, n'importe quoi cette requête, elle revoie un IDTable2 aléatoire pour chaque IDTable1 ...

n°1245474
skeye
Posté le 14-11-2005 à 18:14:30  profilanswer
 

Bon, maintenant que j'ai donné la solution on peut p-e oublier, non?[:kbchris]


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Ordre par défaut dans un Select

 

Sujets relatifs
Récupérer l'état d'une socket en sortie d'un select()avec insert/select es ce que je risque d'exploser le rollback segment?
SELECT sur plusieurs tables à la foisSELECT DISTINCT dans un text et longtext
Création de select[PHP 5] Encodage bizarre par défaut
pourquoi ça!!! probleme d'initalisation d'options de la balise selectSELECT sur plusieurs DB ?
Php - balise <select>probleme while et <select>
Plus de sujets relatifs à : Ordre par défaut dans un Select


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)