@lolka02

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

Есть таблица post(id, category_id, name, test). категории 1 2 3

надо выбрать из категории 2 - 4 записи , из категории 3 - 5 . остальные добрать из 1 категории

Делал через union написал отдельно запрос по 2 и 3 категории потом написал в union запроса первой категории, но данные берутся только из первой категории.

в итоге надо выбрать если 18 записей, то 4 из второй 5 из 3 остальные 11 из первой. но если данных меньше во второй и третьей категориии то добрать из первой
  • Вопрос задан
  • 27 просмотров
Пригласить эксперта
Ответы на вопрос 2
alekseyHunter
@alekseyHunter
Android developer
Делайте 3 отдельных запроса в бд.
На уровне сервера анализировать количество возвращенных строк и добирать необходимое количество строк в запросе из 1 таблицы.

На уровне бд только создавать процедуры или писать условные блоки.
Ответ написан
erge
@erge
Примус починяю
select name, test from (
  select name, test from (select name, test from post where category_id=2 limit 0,4) t2
  union
  select name, test from (select name, test from post where category_id=3 limit 0,5) t3
  union
  select name, test from (select name, test from post where category_id=1 limit 0,18) t1
) t
limit 0,18


см. пример на dbfiddle.uk
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы