Ben birkaç kategori adlı içindeki son 5 aktif konuları almak istiyorum. Her konu bir subcatid vardır ve bu subcatid bir CatID ilgilidir.
Ne istediğiniz her CatID içinde 5 aktif konuları elde etmektir.
Ben aşağıda sorgu kullanmaya çalışıyorum, ama bu hiç çalışmıyor:
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
Bu kodu çalıştırırken ben row_number için (1) hep aynı numarayı almak, bu yüzden bu istediğim sonucu değildir.
Herkes bu işi nasıl alabilirim biliyor mu?
Teşekkürler!