Můžete použít dotaz na hodnocení mysql nemá funkce okna pro tento typ výsledků, abyste získali n záznamů na skupinu, nebudu navrhovat group_concat
řešení, protože jako articles
Termíny říkají, že může být dostatek dat a snadno překonat omezení 1024 znaků, pokud tento limit zvýšíte, závisí to také na max_allowed_packet
taky
SELECT * FROM (
SELECT *,
@r:= CASE WHEN @g = c.id THEN @r +1 ELSE 1 END rownum,
@g:= c.id catgroup
FROM category c
JOIN articles a ON (c.id = a,category_id)
CROSS JOIN (SELECT @g:=0,@r:=0) t2
ORDER BY c.id , a.`date` desc
) t
WHERE rownum <= 5
Výše bude každý článek zařazen do skupiny kategorií, můžete vidět výsledek rownum
alias a ve vnějším dotazu stačí filtrovat výsledky článků na 5 na skupinu kategorií