@lolka02

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

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

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

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

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

На уровне бд только создавать процедуры или писать условные блоки.
Ответ написан
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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 100 000 до 180 000 ₽
Кенарий Санкт-Петербург
от 120 000 до 300 000 ₽
от 90 000 до 110 000 ₽
29 сент. 2020, в 01:42
5000 руб./за проект
28 сент. 2020, в 22:46
1500 руб./за проект
28 сент. 2020, в 22:42
5000 руб./за проект