Ahava
Revenant
Bonjour,
Bon je suis peut-etre trop fatigué, ou je sais pas, mais je m'en sors pas avec une requete. C'est pour l'affichage des sujets dans un forum !
Les tables :
Ce que je veux donc : Récupérer la liste des topics d'une catégorie (les sujets d'un forum), par ordre de date de post si y a aucune réponse au post, ou par ordre de dernier reply du post. Et c'est cette condition qui me pose un énorme problème, le tout mixé dans une seul requete.
Ce que j'ai fait jusqu'à présent, qui est boiteux :
Donc ca me donne ce résultat (l'image en fichier joint). J'ai tenté un order by r.date , p.date mais ca me donne pas le résultat escompté. Je pense être en fait sur une mauvaise piste sans arriver à trouver la bonne voie
Merci pour votre temps
Bon je suis peut-etre trop fatigué, ou je sais pas, mais je m'en sors pas avec une requete. C'est pour l'affichage des sujets dans un forum !
Les tables :
Code:
topics ( [u]id[/] , name , description , position , category )
posts ( [u]id[/] , id_user , id_topic , body , title , date , views )
replies ( [u]id[/] , id_user , id_post _ body , date)
Ce que je veux donc : Récupérer la liste des topics d'une catégorie (les sujets d'un forum), par ordre de date de post si y a aucune réponse au post, ou par ordre de dernier reply du post. Et c'est cette condition qui me pose un énorme problème, le tout mixé dans une seul requete.
Ce que j'ai fait jusqu'à présent, qui est boiteux :
Code:
SELECT p.id , p.id_user , p.id_topic , p.body , p.title , p.priority , p.views , p.date , r.date as replyDate
FROM topics AS t
JOIN posts AS p ON p.id_topic = t.id
LEFT JOIN replies AS r ON r.id_post = p.id
WHERE p.id_topic = 23
AND (
r.date IS NULL OR r.date = (
SELECT r.date
FROM csdw_forum_replies AS r
JOIN csdw_users AS u ON r.id_user = u.id
WHERE r.id_post = p.id
ORDER BY r.date DESC
LIMIT 1
)
)
Merci pour votre temps