LEFT JOIN ordonné

Résolu
Messages postés
19
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
27 juillet 2008
-
Messages postés
19
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
27 juillet 2008
-
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.

2 réponses

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
24
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
Messages postés
19
Date d'inscription
samedi 2 décembre 2000
Statut
Membre
Dernière intervention
27 juillet 2008

Bonjour,

J'ai finalement réussi à mettre en oeuvre mon forum. Merci beaucoup.

A plus.