MySQL-Reihenfolge vor der Gruppierung nach

Es gibt hier viele ähnliche Fragen, aber ich denke nicht, dass sie die Frage angemessen beantworten.

Ich gehe weiter von der aktuell beliebtestenFrage und benutze ihr Beispiel, wenn das in Ordnung ist.

Die Aufgabe in dieser Instanz besteht darin, den neuesten Beitrag für jeden Autor in der Datenbank abzurufen.

Die Beispielabfrage führt zu unbrauchbaren Ergebnissen, da es sich nicht immer um den letzten zurückgegebenen Beitrag handelt.

SELECT wp_posts.* FROM wp_posts
    WHERE wp_posts.post_status='publish'
    AND wp_posts.post_type='post'
    GROUP BY wp_posts.post_author           
    ORDER BY wp_posts.post_date DESC

Die aktuell akzeptierte Antwort lautet

SELECT
    wp_posts.*
FROM wp_posts
WHERE
    wp_posts.post_status='publish'
    AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author
HAVING wp_posts.post_date = MAX(wp_posts.post_date) <- ONLY THE LAST POST FOR EACH AUTHOR
ORDER BY wp_posts.post_date DESC

Leider ist diese Antwort einfach falsch und führt in vielen Fällen zu weniger stabilen Ergebnissen als die ursprüngliche Abfrage.

Meine beste Lösung ist die Verwendung einer Unterabfrage des Formulars

SELECT wp_posts.* FROM 
(
    SELECT * 
    FROM wp_posts
    ORDER BY wp_posts.post_date DESC
) AS wp_posts
WHERE wp_posts.post_status='publish'
AND wp_posts.post_type='post'
GROUP BY wp_posts.post_author 

Meine Frage ist also einfach:Gibt es trotzdem eine Möglichkeit, Zeilen vor dem Gruppieren zu bestellen, ohne auf eine Unterabfrage zurückzugreifen?

Bearbeiten: Diese Frage war eine Fortsetzung einer anderen Frage und die Besonderheiten meiner Situation sind etwas anders. Sie können (und sollten) davon ausgehen, dass es auch eine wp_posts.id gibt, die eine eindeutige Kennung für diesen bestimmten Beitrag darstellt.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage