Symfony 4 Doctrine 2 Query Builder - PullRequest
       38

Symfony 4 Doctrine 2 Query Builder

0 голосов
/ 21 декабря 2018

Я пытаюсь создать запрос с помощью 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?

...