Я хочу получить самые свежие 5 опубликованных WordPress Сообщений для каждой категории во внешнем приложении. Это приложение создается в ASP.NET, поэтому я хочу получить данные непосредственно из базы данных MySQL с помощью EF. Построение отношений WordPress в EF кажется ужасным, поэтому я хочу создать пользовательскую модель, содержащую сведения о категории и информацию о новейших сообщениях.Получайте последние 5 сообщений в WordPress для каждой категории
Поэтому я написал запрос SQL, который работает, но из-за агрегатного группе он дал мне только одну строку (запись) в категории:
Select terms.term_id As Id, terms.name As Name, terms.slug As SeoName, Group_Concat(relations.object_id) As PostId, taxonomy.count As Count, taxonomy.parent As ParentId,
(
Select post_title
From wp_posts
Where ID In(Group_Concat(relations.object_id))
Order By post_date Desc
) As PostTitle
From wp_terms terms, wp_term_taxonomy taxonomy, wp_term_relationships relations
Where terms.term_id = taxonomy.term_id
And relations.term_taxonomy_id = taxonomy.term_taxonomy_id
And taxonomy.taxonomy = 'category'
Group By terms.term_id
Моя идея состояла в том, чтобы добавить Having Count(terms.term_id) = 5
так что я получаю 5 строк по категориям. Но он не работает, я получил пустой результат. Без Having
я получаю одну строку для каждой категории с новейшим сообщением.
Как я могу сказать MySQL возвращать 5 строк для каждой категории БЕЗ удаления группировки?
Допустим, у меня есть категории дерева:
- CATA
- CatB
- CATC
Тогда я хочу, чтобы получить следующий результат из базы данных (в общем):
CategoryId | CategoryName | NewestPostTitle
1 | CatA | Newest post in CatA
1 | CatA | Second newest post in CatA
...
2 | CatB | Newest post in CatB
2 | CatB | Second newest post in CatB
...
3 | CatC | Newest post in CatC
3 | CatC | Second newest post in CatC
Если вам нравится, рассмотрите следующий простой двухэтапный курс действий: 1. Если вы еще этого не сделали, предоставьте правильные инструкции CREATE и INSERT (и/или sqlfiddle), чтобы мы могли легче реплицировать проблему , 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry
Почему вы не перебираете категории и не запрашиваете сообщения каждой итерацией простым WP_Query (или get_posts ())? –