On veut selectionner les derniers enregistrements d'une table en groupant par une colonne :
on pourrait penser que ça ça marche :
SELECT p.*
FROM (
SELECT *
FROM posts
ORDER BY id DESC -- or date desc
) AS p
GROUP BY p.author
pour que ça marche il faut ajouter un inner join sur la même table, max(id)
le group by se retrouve alors dans le join
SELECT p.*
FROM post as p
INNER JOIN (
SELECT max(id) maxid
FROM post
GROUP BY author
) p2
p.id = p2.maxid
sinon on peut utiliser max(date), mais il faut alors ajouter le champs qui sert a grouper pour que la "clé" (author+date) soit unique
SELECT p.*
FROM post as p
INNER JOIN (
SELECT max(date) maxdate, author
FROM post
GROUP BY author
) p2
ON p.author = p2.author
AND p.date = p2.maxdate