Я совершенно новичок в FLOW3 и очень плохо знаком с Doctrine.
Я просто провожу некоторые тесты и хочу изучить или понять некоторые методы, которые я буду использовать позже.Теперь я застрял в этой части доктрины, где я хочу создать некоторые статистические данные.
$results = $this->entityManager
->createQuery('SELECT version,count(version)
FROM (SELECT device, version
FROM \MyStuff\Stats\Domain\Model\Stat
WHERE
date > \'2011-10-01 00:00:00\' and
date < \'2011-10-02 00:00:00\'
GROUP BY device) GROUP BY version')
->getResult();
Я спрашивал и в других местах, куда они направили меня к Документам доктрины .Что ж, теперь есть несколько примеров, но эти 2 лайнера тривиальны, и я не смог найти ни одного примера, связанного с такого рода подвыбором.
Поэтому я надеюсь, что кто-то здесь может мне помочь.
Редактировать:
Я бы хотел решить эту проблему с помощью dql.
Я пытался решить эту проблему с помощью построителя запросов, но мне сказали, что построитель запросов! = Dql
Редактировать 2:
Теперь мне сказали, что doctrine2 не поддерживает подвыборы в "FROM (SUBSELECT)", но что он делает "... WHERE IN (SUBSELECT)" и что можно переписать мой запрос в IN ()форма.Что ж, пытаюсь выяснить это сейчас.
Редактировать 3: Я не могу переписать исходный подзапрос в подзапрос.Итак ... dql не делает подзапросов, и нет другого способа сделать то, что я хочу с dql ?!Тогда у dql не будет очень важной функции, я бы сказал.Или я просто не вижу ничегоздесь?
Редактировать 4: Я наконец получил в подзапросе, но он был примерно в 10 раз медленнее (4 секунды вместо 0,4), и теперь мне сказали некоторые доктрины из #doctrine, что я должен использовать функцию nativeQuery вместо этого.
Edit 5: Теперь она работает с использованием nativeQuery, см. мой ответ на этот вопрос ...