Я пытаюсь создать запрос с помощью querybuilder из собственного запроса.
запрос чистого SQL
SELECT p.param, c.value, a.action_date AS last_run FROM search_conditions c
RIGHT JOIN search_parameters p ON p.id = c.parameter_id
LEFT JOIN (
SELECT condition_id, MAX(action_date) AS action_date
FROM search_actions group by condition_id
) a ON a.condition_id = c.id
WHERE p.param != \'status\' AND c.value IS NOT NULL
Поэтому я хотел бы выбрать значение MAX()
изтаблица search_action.
SearchParameterRepository
public function getActionsConditionsWithMaxDateQB()
{
$q = $this->createQueryBuilder('p');
$q->select('p.param', 'c.value')
->leftJoin('p.searchConditions', 'c')
->leftJoin('c.searchActions', 'a', Expr\Join::WITH, $q->expr()->max('a.actionDate') );
Эта ошибка выброса
[Синтаксическая ошибка] строка 0, столбец -1: Ошибка:Ожидаемый =, <, <=, <>,>,> =,! =, Получил конец строки.
Включает имена используемых полей
SearchAction
- $condition (ManyToOne, SearchCondition)
- $parameter (ManyToOne, SearchParameter)
- $actionDate
SearchParameter
- $param
SearchCondition
- $value
вопрос
Как построить этот запрос с помощью QueryBuilder?