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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT * 
FROM topics 
ORDER BY date_pub DESC
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
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
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 :
  • afficher les topics par ordre de date du dernier message posté lié
  • afficher le reste des topics par ordre de date décroissante


Non ?