サブクエリの結合選択の結果をマップしようとすると、ネイティブクエリを作成するsymfonyとdoctrineに問題があります。私は元のための結合フィールドのnull結果を取得します。 ad.availabilityはnullです。Symfony Doctrineネイティブクエリ結果のマッピングサブクエリの選択select
基本的に私は2つのテーブルのactivityと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
);
doctrineを手動で値を入力せずにクエリを実行すると、期待通りの結果が返されますか? – Chausser
はいそうです。 SQLクエリは正しい値を返します。 – Never