Я пытаюсь выбрать всех своих пользователей и для каждого пользователя подсчитать количество сделанных и входящих бронирований. На данный момент у меня есть это
$qb = $this->createQueryBuilder('user');
return $qb->select('user')
->leftJoin('user.reservations', 'reservations')
->leftJoin('reservations.marketDate', 'market_date')
->addSelect('COUNT(nb_reservations FROM reservations WHERE market_date.date >= CURRENT_DATE())')
->orderBy('user.name')
->groupBy('user.id')
->getQuery()
->getResult();
Но у меня такая ошибка
[Semantical Error] line 0, col 59 near 'market_date >=': Error: Class 'market_date' is not defined.
Помогите, пожалуйста






Синтаксис в СЧИТАТЬ кажется неправильным: COUNT не должен включать весь оператор. Попробуй это:
->addSelect('COUNT(nb_reservations) FROM reservations WHERE market_date.date >= CURRENT_DATE()')
Попробуй это:
$qb = $this->createQueryBuilder('user');
return $qb->select('user, count(reservations) as count')
->leftJoin('user.reservations', 'reservations')
->leftJoin('reservations.marketDate', 'market_date')
->where('market_date.date >= CURRENT_DATE()')
->orderBy('user.name')
->groupBy('user.id')
->getQuery()
->getResult();
это решение выбирает пользователей, у которых есть будущие бронирования, и подсчитывает будущие бронирования пользователя. Я хотел бы выбрать всех пользователей и подсчитать количество будущих бронирований, даже если их 0
Тогда вам нужно вместо этого использовать левое внешнее соединение.
Спасибо за ответ, я попробовал ваше решение, но теперь у меня ошибка
[Semantical Error] line 0, col 41 near 'reservations': Error: Class 'reservations' is not defined.