Здравствуйте!
Банальная задача, но никак не выходит понять как сформировать один запрос.
Есть две таблицы:
- groups (id, title) (группы)
- clients (id, username, group_id) (клиенты)
Я хочу вывести столбцы групп, в которых будут клиенты, но чтобы в каждой группе было максимум по 15 человек.
Самое простое, что придумал, это такой ужас:
// Получаю все группы
$groups = $this->getDoctrine()->getRepository(Groups::class)->findAll();
// Создаю массив для финального результата
$clients_lists = [];
foreach ($groups as $group){
$clients_lists[$group->getId()] = [];
// Получаю клиентов из этой группы с лимитом 15
$clients = $this->getDoctrine()->getRepository(Clients::class)->findBy([
'group_id' => $group->getId()
], [], 15);
// И добавляю их в массив под индексом группы
$clients_lists[$group->getId()] = $clients;
}
Как сделать это нормально, минимумом запросов к БД без запросов в цикле?