У меня есть что-то вроде этого:MySQL | Оставшись присоединиться к
ID | post_author | post_date | ... | post_title | post_status | ... | post_type
-------------------------------------------------------------------------------
1 | 1 | 2007-08-11| ... | A | publish | ... | post
2 | 3 | 2007-08-12| ... | B | publish | ... | post
3 | 1 | 2007-08-12| ... | C | publish | ... | post
4 | 1 | 2007-08-13| ... | D | publish | ... | post
5 | 3 | 2007-08-13| ... | E | publish | ... | post
То, что я хотел бы сделать, это получить количество сообщений пользователя и название и идентификатор последнего поста. На основании вышеприведенных данных должен быть результат, что:
AuthorID | TotalPosts | PostID | PostTitle
------------------------------------------
1 | 3 | 5 | E
3 | 2 | 4 | D
То, что я попытался это:
SELECT
p1.post_author AS Author,
count(p1.post_author) AS Posts,
p2.post_title AS Title
FROM
wp_posts AS p1
LEFT JOIN
wp_posts As p2
ON
p1.ID = p2.ID
WHERE
p1.post_type = 'post'
AND
p1.post_status = 'publish'
GROUP BY
p1.post_author
ORDER BY
Posts DESC,
p2.post_date ASC
LIMIT
2
Проблема заключается в том, что я всегда получаю название первого поста, а не название последний пост. Есть ли способ получить заголовок последнего вставленного сообщения?
Сердечные приветы
Там была ошибкой в коррелированном подзапросе. Теперь это исправлено. –
Я попытался бы избавиться от 'ORDER BY' в подзапросе. – Bulat
«ORDER BY p2.post_date DESC» на самом деле там не нужен. Его можно заменить на 'AND p2.post_date = MAX (p1.post_date) ORDER BY anything'. Но я не вижу причин, чтобы избежать «ORDER BY». –