Voila, je dois faire un mini forum et affiché l'ordre des différents topics en fonction de la date du dernier post.
Mes tables ressemblent grosso modo à ça :
poste (id_poste, #auteur_poste, #sujet_poste, date_poste, texte_poste ) // post relatif à un topic
sujet (id_sujet, #auteur_sujet, texte_sujet, date_sujet) // table des topics
Mon problème est que je n'arrive pas à faire une requete qui puisse faire ce que je veux sans afficher autant de fois le sujet qu'il n'y a de reponse dedans...
Si j'utilise la fonction DISTINCT dans mon select, absolument rien ne change par rapport à une requete ou je ne l'utilise pas. Si j'utilise GROUP¨BY, mon tri ne marche plus...
Nottez que j'ai enlevé la jointure avec la table USER pour plus de clareté dans la requete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Requete ne tenant pas compte de l'ordre : select poste.date_poste, poste.sujet_poste, user.login_user, user.id_user from poste, user where user.id_user = poste.auteur_poste group by poste.sujet_poste order by poste.date_poste desc limit 0, 10 // requete tenant compte de l'ordre, mais affichant autant de fois le topic qu'il n'y a de réponse : select poste.date_poste, poste.sujet_poste, user.login_user, user.id_user from poste, user where user.id_user = poste.auteur_poste order by poste.date_poste desc limit 0, 10 // requete dont le résultat est strictement identique à celui de la requete précédente : select distinct poste.sujet_poste, poste.date_poste, user.login_user, user.id_user from poste, user where user.id_user = poste.auteur_poste order by poste.date_poste desc limit 0, 10
Quelqun pourrait-il m'expliqué pourquoi cela ne marche pas ?
Partager