SQL group by et distinct

rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   -  
 fmarie -
Bonjour, pour mon forum, je voudrais afficher distinctement mes forums (thématiques) dans l'ordre du plus recent au plus ancien des posts qui s'y trouvent...

voila ma requette qui ne fonctionne pas : (elle me renvoie bien les forum mais pas dans lordre voulu)

SELECT forum , datepost FROM monforum GROUP BY forum ORDER BY datepost DESC


mes datespost sont stokées en timestamp (INT)

exemple table :

FORUM_____ SUJET______MESSAGE_________DATEPOST

nature_____poissons_____blablablabla________150
nature_____maisons_____blablablabla_________80
nature_____etoiles______blablablabla_________120
passion____vélo________blablablablabla_______180
passion____piscine______blablablablabla_______60
amour_____julie________blablablabla_________140

et je voudrai que cela me sorte donc :

passion
nature
amour

du plus recent (180) au plus vieu (140)

j'espere avoir été sufisament clair dans mes explications ^^, je vous remercie pour votre coup de main

9 réponses

skykiller31 Messages postés 116 Statut Membre 5
 
bonjour redak!
pour afficher des resultats disctincts:

SELECT DISTINCT ....

fais un test et tu verra par toi même ;)
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
oué merci mais si c'étai si simple je sera pas venu demander ici...
je voudrais pas seulement les distinct forums je veu aussi les trier du plus grand datepost au plus petit ?

et "SELECT DISTINCT forum FROM monforum ORDER BY datepost" ne suffi pas.

on ne peu pas utiliser datepost si le champ n'est pas après le select, et si je met SELECT DISTINCT forum, datepost, jai plus seulement mes distinct forums mais aussi une ligne de result par forum / datepost
0
JessayeDeTrouver Messages postés 300 Statut Membre 47
 
SELECT forum , datepost FROM monforum GROUP BY forum ORDER BY datepost

=>sans le desc
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
non ca me donne toujours pas dans l'ordre voulu ( avec ou sans le DESC )
je n'obtiens pas les forums corespondants au plus grands datepost
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
skykiller31 Messages postés 116 Statut Membre 5
 
c'est exact ce que tu dis mais, essaie cette requete, et je pense fortement que ça marchera:

SELECT DISTINCT forum FROM monforum ORDER BY DATEPOST DESC;

avec cette requete tu auras au final un tableau avec les forums classés distinctement du plus récent datepost au plus ancien.

si tu as des doutes sur le résultats que cette requete te donne alors compare le resultat de celle au-dessus avec le resultat de celle-ci:

SELECT DISTINCT FORUM, DATEAJOUT FROM MONFORUM ORDER BY DATEPOST DESC;

et tu verras par toi meme que le classement des forums donné par la 1ere requete et le meme classement si tu fais la distinction pour la 2eme.

requetes testées sur MYSQL!

bonne année 2010 à toi et à tous ce ptit monde sur commentçamarche ;)
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
après avoir testé je confirme cela ne fonctionne pas

la syntaxe de la premiere est fausse (meme si elle ne retourne pas l'erreur) et elle ne ressort pas les infos souhaitées ce qui est normal vu l'erreur et la deuxième ne retourne dailleurs pas seulement le nombre de forums distincts mais autant de lignes de forum qu'il y a d'entrées dans la table...

ce genres de requettes basiques je les ai testées avant de venir ici donc bon... ;)

merci quand meme d'essayer mais c plus complexe que ca :)
0
skykiller31 Messages postés 116 Statut Membre 5
 
donc y a certainement qqch qui m'échape, pcq le resultat q tu demande je l'ai moi en faisant ces requetes sur ma propre base de données et ça fonctionnent parfaitement.
pour la 2eme requete c vrai, elle retourne autant de ligne qu'il y a dans la table mais elle est là juste pour verification par contre la 1ere elle retourne sans repetition et en ordre voulu descendant ou ascendant.

donc pour ne pa perdre trop de temps essaie de donner plus de precisions sur le sujet peut etre q si c'est compliqué pour nous deux ça sera pas le cas pour un autre
0
rudak Messages postés 590 Date d'inscription   Statut Membre Dernière intervention   46
 
c'est tres clair dans le premier post

le soucis c'est pas qu'on ne comprend pas la question c'est qu'on a pas la réponse.. :) merci a toi d'avoir essayé
0
fmarie
 
SELECT DISTINCT FORUM,
(select max(DATEPOST) FROM test B WHERE A.FORUM=B.FORUM) AS LASTDATEPOST
FROM test A
GROUP BY FORUM
ORDER BY DATEPOST DESC

Tu as le tri des forum avec la dernière date en face
0