steckdenis
Messages postés19Date d'inscriptionsamedi 2 décembre 2000StatutMembreDernière intervention27 juillet 2008
-
25 juil. 2008 à 19:56
steckdenis
Messages postés19Date d'inscriptionsamedi 2 décembre 2000StatutMembreDernière intervention27 juillet 2008
-
27 juil. 2008 à 18:02
Bonjour,
Pour créer mon forum, j'ai besoin, pour chaque sujet, de connaître l'auteur du dernier message. Pour cela, je dois trouver quel est le dernier message de chaque sujet. J'utilise donc un LEFT JOIN comme ceci :
SELECT topics.id AS id,topics.titre AS titre, topics.soustitre AS soustitre, users.pseudo AS dernier_auteur, users.id AS auteurid
FROM `topics`
LEFT JOIN post ON post.parentid=topics.id
LEFT JOIN users ON users.id=post.auteurid
Ici, post ne sert qu'à trouver le bon utilisateur. Le problème est donc le suivant : j'obtiens le premier message du sujet, et non le dernier.
Comment puis-je faire en sorte d'avoir le dernier message du sujet ?
A plus, et merci d'avance pour votre aide.
PS: Le résultat obtenu pour le moment se trouve à l'adresse : http://logram-project.org/voirforum-10.html . Vous pouvez remarquer qu'il est affiché le nom de l'utilisateur ayant créé le sujet à la place de celui ayant été le dernier à répondre.
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 26 juil. 2008 à 16:43
Salut,
Il te faudrait un champ date dans la table POST qui servirait de regroupement
et demander le dernier grace à cela :
SELECT max(post.date_post) as datePost,
topics.id AS id,topics.titre AS titre, topics.soustitre AS soustitre,
users.pseudo AS dernier_auteur, users.id AS auteurid
FROM `topics`
LEFT JOIN post ON post.parentid=topics.id
LEFT JOIN users ON users.id=post.auteurid
GROUP BY topics.id, topics.titre, topics.soustitre, users.pseudo, users.id