Я создаю страницу "авторов" для моего блога Wordpress, в которой перечисляются все текущие авторы сайта, а также различную другую информацию, такую как количество опубликованных сообщений, дата их последнего сообщения и т. Д.
Google и Кодекс Wordpress указали мне на использование подзапросов в MySQL для извлечения всех необходимых мне данных в одном запросе, и это прекрасно работает для получения количества опубликованных постов на автора.
То, что я не могу получить, - это нахождение идентификатора поста для последнего поста для каждого автора.
Текущий запрос, без последнего сообщения:
SELECT users.ID, (SELECT count(*) FROM posts, users WHERE users.ID = posts.post_author AND posts.post_type = 'post' AND posts.post_status = 'publish') AS post_count FROM users ORDER BY post_count DESC
Моя попытка получить последний пост ID для каждого автора ('latest_post_ID'):
SELECT users.ID, (SELECT count(*) FROM posts, users WHERE users.ID = posts.post_author AND posts.post_type = 'post' AND posts.post_status = 'publish') AS post_count, (SELECT posts.ID FROM posts, users WHERE users.ID = posts.post_author AND posts.post_type = 'post' AND posts.post_status = 'publish' ORDER BY posts.post_date DESC LIMIT 1) AS latest_post_ID FROM users ORDER BY post_count DESC
Проблема заключается в добавленном подзапросе - запрос найдет все опубликованные посты, которые соответствуют любому автору, а не тому, что я собираюсь ('users.ID = posts.post_author').
Я был бы очень признателен, если бы кто-то с каким-то SQL-фу мог указать, где я неправильно использую и / или злоупотребляю подзапросами MySQL.