Bonjour à tous,
J'ai un petit problème avec une requète SQL :
J'ai deux tables :
- topics :
- posts :
Initialement, je me contentais de sortir de la table topics tous les messages qui y avaient été postés par ordre décroissant de date :
Mais je souhaiterais sortir désormais de la table topics les messages par ordre du dernier post posté dans la table posts (on connait la correspondance entre un post et le topic par le biais de la clef fk_article):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM topics ORDER BY date_pub DESC
Le problème : cette requette fonctionne, mais ne renvoie que les topics qui ont eu au moins un commentaire. J'ai l'ai contourné inélégamment dans un premier temps en postant un post vierge (masqué à l'affichage) à la création de chaque nouveau topic, mais il doit y avoir une solution pour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT top.*, MAX(pos.date_pub) AS date_com, pos.fk_article AS fk_article FROM topics AS top, posts AS pos WHERE (top.id_article = fk_article) GROUP BY fk_article ORDER BY date_com DESC
- afficher les topics par ordre de date du dernier message posté lié
- afficher le reste des topics par ordre de date décroissante
Non ?
Partager