У меня проблема с symfony и doctrine, создающим собственный запрос, когда я пытаюсь сопоставить результаты выбора соединения в подзапросе. Я получаю нулевой результат для объединенных полей для ex. ad.availability - null.Symfony Doctrine Native Query Result Mapping Присоединение подзапроса select
В основном у меня есть 2 таблицы деятельности и activity_dates. Мне нужно получить минимальную цену за каждое мероприятие. SQL работает правильно. но застрял в картографии.
Любая идея?
благодаря
$rsm = new ResultSetMapping;
$rsm->addEntityResult('ActivityBundle:Activity', 'ac');
$rsm->addEntityResult('ActivityBundle:ActivityDate', 'ad');
$rsm->addFieldResult('ac', 'id', 'id');
$rsm->addFieldResult('ac', 'title', 'title');
$rsm->addFieldResult('ad','availability','availability');
$sql = 'SELECT
ac.id,
ac.title,
ac.price,
ad.availability
FROM
activities ac
LEFT JOIN
(SELECT
id,
date,
price,
activity_id,
availability
FROM
activity_dates a
WHERE
price = (
SELECT
MIN(price)
FROM
activity_dates b
WHERE
b.activity_id = a.activity_id
)
) ad
ON
ad.activity_id = ac.id';
$query = $this->_em->createNativeQuery($sql, $rsm)
->setHint(
\Doctrine\ORM\Query::HINT_CUSTOM_OUTPUT_WALKER,
'Gedmo\\Translatable\\Query\\TreeWalker\\TranslationWalker'
)
->setHint(
\Gedmo\Translatable\TranslatableListener::HINT_INNER_JOIN,
true
);
Если вы выполняете запрос без доктрины, вручную заполняя значения, он возвращает то, что вы ожидаете? – Chausser
да. SQL-запрос возвращает правильные значения. – Never