Récupérer le dernier post d'un sujet

Récupérer le dernier post d'un sujet - SQL/NoSQL - Programmation

Marsh Posté le 03-12-2005 à 18:54:23    

Bonsoir tout le monde,
 
Je cale depuis quelques jours sur une requête que je n'arrive pas à trouver :'(
 
Prenez d'abord connaissance de ce modeste MCD pour situer la chose.
 
http://dl-1.free.fr/52616e646f6d4956eda916b2ee2b8cd9542379e9bd9e51149b895c97a1d907c8/forum_mcd.gif
 
Objectif : Récupérer la liste des sujets d'un thème en les triant par ordre de dernière réponse. J'ai de vagues souvenirs sur la manière d'écrire une requête retournant ce résultat mais je n'y arrive pas.
 
J'utilise MySQL.
 
Voilà ce que j'ai essayé, sans résultat :
 

SELECT * FROM xtm_f_sujet, xtm_f_post WHERE xtm_f_sujet.t_id = 2 AND xtm_f_post.p_id = (SELECT max(p_id) FROM xtm_f_post) AND xtm_f_post.s_id = xtm_f_sujet.s_id


Votre requête SQL a été exécutée avec succès (traitement: 0.5520 sec.) mais aucun résultat retourné.
 
Si vous savez vers quel chemin je dois m'orienter, ça m'intéresserai fortement.
 
Merki :jap:  
 
ps : pour ceux qui vont râler parce que j'utilise l'étoile ( * ), je suis en phase de développement, pas d'utilisation...

Reply

Marsh Posté le 03-12-2005 à 18:54:23   

Reply

Marsh Posté le 03-12-2005 à 20:36:28    

SELECT ..   ., MAX(xtm_f_post.p_id) AS dernier_id
FROM xtm_f_sujet, xtm_f_post
WHERE xtm_f_sujet.t_id = 2
  AND xtm_f_post.s_id = xtm_f_sujet.s_id
GROUP BY xtm_f_sujet.s_id
ORDER BY dernier_id DESC
 
Je pense pas que la sous-requête soit indispensable.
 
Ca trie suivant la valeur de l'id. Mais ca me semblerait plus logique de se baser sur un champ date :??:


Message édité par mrbebert le 03-12-2005 à 20:38:01
Reply

Marsh Posté le 03-12-2005 à 21:50:57    

Je viens de tester et le résultat obtenu est exactement ce qui était demandé. Je vais faire le trie sur la date comme tu le suggères.
 
Je te remercie beaucoup et te souhaite un bon weekend ;-)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed