Я использую Symfony 4.1, и мне нужно объединить таблицу с "сложным" условием:
$query = $this->createQueryBuilder('r')
->select('r, d.latitude, d.longitude')
->join('App\Entity\Departement', 'd', 'WITH',
'IF (LEFT(r.postal, 2) < \'96\', LEFT(r.postal, 2), LEFT(r.postal, 3)) = d.code')
Я получил ошибку:
Ожидаемая известная функция, получила 'IF'
Как использовать необработанный запрос в условии соединения?
EDIT
Хорошо, IF
не определен в DQL ... Поэтому я использую:
->join('App\Entity\TblDepartement', 'd', 'WITH',
'CASE WHEN (SUBSTRING(r.postal, 0, 2) < \'96\')
THEN SUBSTRING(r.postal, 0, 2)
ELSE SUBSTRING(r.postal, 0, 3) END AS postal')
Но postal
всегда пуст, есть идеи?