выберите n сообщений в категории в одном запросе - PullRequest
0 голосов
/ 30 ноября 2011

На моей домашней странице я показываю разные посты из разных категорий.Моя текущая реализация состоит в том, чтобы вызывать query_posts много раз (один раз на категорию)

Как я могу использовать один запрос для извлечения данных?

Мои попытки

1 - этот метод работает (не обращайте внимания на уродливый очень длинный sql, у меня много категорий ...)Спасибо за сообщение: http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

( SELECT * 
  FROM `wp_posts` p,`wp_term_relationships` rel 
  WHERE rel.object_id = p.ID 
   AND rel.term_taxonomy_id = '3' 
  ORDER BY p.post_date DESC 
  LIMIT 2)
UNION ALL 
( SELECT * 
  FROM `wp_posts` p,`wp_term_relationships` rel 
  WHERE rel.object_id = p.ID 
    AND rel.term_taxonomy_id = '4' 
  ORDER BY p.post_date DESC 
  LIMIT 2)

1 Ответ

1 голос
/ 30 ноября 2011
SELECT i.* 
FROM wp_term_relationships rel
INNER JOIN ( 
  SELECT p.*, rel2.* 
  FROM wp_posts p
  INNER JOIN wp_term_relationships rel2
          ON (rel2.object_id = p.ID) 
  WHERE rel2.term_taxonomy_id = rel.term_taxonomy_id
  ORDER BY p.post_date DESC 
  LIMIT 2 OFFSET 0 ) i ON (i.object_id = rel.object_id)
WHERE rel.term_taxonomy_id IN ('3','4')
ORDER BY i.term_taxonomy_id ASC, i.post_date DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...