Je veux connaître les 5 derniers sujets les plus actifs dans plusieurs catégories. Chaque sujet a un subcatid et ce subcatid se rapporte à un catid.Activetopics - Obtenez un maximum de 5 sujets par catégorie
Ce que je veux, c'est obtenir les 5 sujets actifs dans chaque catid.
J'essaie d'utiliser la requête ci-dessous, mais cela ne fonctionne pas du tout:
set @num := 0, @catid := 0;
SELECT
forum_posts.topicid,
forum_topics.titel,
forum_topics.sticky,
forum_topics.gesloten,
MAX(forum_cats.id) AS catid,
MAX(forum_cats.titel) AS cattitel,
MAX(forum_subcats.id) AS subcatid,
MAX(forum_posts.id) AS maxid,
DATE_FORMAT(MAX(forum_posts.datum), '%d-%m-%Y om %H:%i uur') AS datum,
UNIX_TIMESTAMP(MAX(forum_posts.datum)) AS laatstereactieunix,
(COUNT(forum_posts.id) - 1) AS reactieaantal,
@num := IF(@catid = MAX(forum_cats.id), @num + 1, 1) AS row_number,
@catid := MAX(forum_cats.id) AS dummy
FROM
forum_posts
INNER JOIN
forum_topics
ON
forum_topics.id = forum_posts.topicid
INNER JOIN
forum_subcats
ON
forum_subcats.id = forum_topics.subcat
INNER JOIN
forum_cats
ON
forum_cats.id = forum_subcats.cat
WHERE
forum_cats.id IN (1)
AND
forum_topics.gesloten != '1'
GROUP BY
forum_posts.topicid,
forum_topics.titel,
forum_topics.sticky,
forum_topics.gesloten
HAVING
row_number <= 5
ORDER BY
forum_cats.id ASC,
MAX(forum_posts.datum) DESC
Lors de l'exécution de ce code, je reçois toujours le même numéro (1) pour row_number, il en est ainsi pas le résultat que je veux.
Est-ce que quelqu'un sait comment je peux obtenir ce travail?
Merci!