Я пытаюсь получить доступ к элементам из базы данных из 2 таблиц, но получаю максимум 3 для каждой группы - PullRequest
0 голосов
/ 27 февраля 2020

Я делаю запрос mysql с использованием 2 таблиц и пытаюсь получить максимум 3 строки на группу.

Пример: таблица 1 - «Отделы», а таблица 2 - «Категории». Допустим, отдел - это одежда, а другой - ювелирные изделия. Если в отделе с названием «Одежда» есть 5 категорий (обувь, джинсы, нижнее белье, носки, толстовки), а в отделе украшений - 4 категории (кольца, ожерелья, браслеты, серьги), как вернуть только 3 категории для каждого отдела.

Я хочу, чтобы выходные данные возвращались

Department   Category
______________________________________
Clothing     Shoes
Clothing     Jeans
Clothing     Underware
Jewellery      Rings
Jewellery      Necklaces
Jewellery      Bracelets

Я хочу вернуть максимум 3 категории для каждого отдела.

Это пример того, что я пытаюсь сделать, но в базе данных гораздо больше отделов и категорий. Я сделаю заказ по категориям и отделам. Этот запрос предназначен для отображения короткой информации для пользователя, поэтому позже мне придется получить доступ ко всем отделам и категориям. Я уже могу сделать это с mysql, но я не могу понять, как получить только 3 категории MAX

1 Ответ

0 голосов
/ 27 февраля 2020

Одна из возможностей - использовать простые операторы SELECT с LIMIT и использовать UNION для объединения данных. Например:

Departments Table:

+----+--------------+
| id | name         |
+----+--------------+
|  1 | jewelry      |
|  2 | clothing     |
+----+--------------+

MySQL:

(SELECT * from categories WHERE department_id=1 LIMIT 3)
UNION
(SELECT * from categories WHERE department_id=2 LIMIT 3)

Однако, если у вас много разных отделов, вам понадобится более надежный подход. В этом случае вам поможет ответ: { ссылка }

...