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
EDIT:
Setelah beberapa komentar, saya memutuskan untuk menambahkan beberapa informasi tambahan.
Perusahaan tempat saya bekerja juga menggunakan Postgres dan terutama SQL Server. Basis data ini tidak mengizinkan kueri semacam itu. Jadi saya tahu bahwa ada cara lain untuk melakukan ini (saya menulis solusi di bawah). Anda juga harus tahu apa yang Anda lakukan jika Anda tidak mengelompokkan menurut semua kolom yang diperlakukan dalam proyeksi atau menggunakan fungsi agregat. Jika tidak, biarkan saja!
Saya memilih solusi di atas, karena ini adalah pertanyaan spesifik. Tom ingin mendapatkan posting terbaru untuk setiap penulis di situs wordpress. Dalam pikiran saya, analisis dapat diabaikan jika seorang penulis melakukan lebih dari satu posting per detik. Wordpress bahkan harus melarangnya dengan deteksi spam-double-post-nya. Saya tahu dari pengalaman pribadi bahwa ada manfaat yang sangat signifikan dalam kinerja melakukan grup kotor seperti itu dengan MySQL. Tetapi jika Anda tahu apa yang Anda lakukan, maka Anda bisa melakukannya! Saya memiliki grup kotor di aplikasi tempat saya bertanggung jawab secara profesional. Di sini saya memiliki tabel dengan beberapa baris mio yang membutuhkan 5-15 detik, bukan 100++ detik.
Mungkin berguna tentang beberapa pro dan kontra:http://ftp.nchu.edu.tw/MySQL/tech-resources/articles/debunking-group-by-myths.html
SELECT
wp_posts.*
FROM
wp_posts
JOIN
(
SELECT
g.post_author
MAX(g.post_date) AS post_date
FROM wp_posts as g
WHERE
g.post_status='publish'
AND g.post_type='post'
GROUP BY g.post_author
) as t
ON wp_posts.post_author = t.post_author AND wp_posts.post_date = t.post_date
ORDER BY wp_posts.post_date
Tetapi jika di sini lebih dari satu posting per detik untuk seorang penulis, Anda akan mendapatkan lebih dari satu baris dan bukan satu-satunya yang terakhir .
Sekarang Anda dapat memutar roda lagi dan mendapatkan pos dengan Id
tertinggi . Bahkan di sini setidaknya tidak menjamin bahwa Anda benar-benar mendapatkan yang terakhir.