Doctrine2 & Symfony2 множественный счет в одном запросе - PullRequest
2 голосов
/ 31 июля 2011

Я бы хотел сделать такой запрос с помощью symfony2 и doctrine:

SELECT 
(SELECT count(id) FROM table1) AS c1,
(SELECT count(id) FROM table2) AS c2,
(SELECT count(id) FROM table3) AS c3,
(SELECT count(id) FROM table4) AS c4

(примечание: этот запрос работает в mysql) Однако я не знаю, как сделать это с доктриной, Я пробовал что-то вроде этого:

$em = $this->getDoctrine()->getEntityManager();
$result = $em->createQuery('SELECT
    (SELECT count(id) FROM MyBundle:Table1) AS c1,
    (SELECT count(id) FROM MyBundle:Table2) AS c2,
    (SELECT count(id) FROM MyBundle:Table3) AS c3,
    (SELECT count(id) FROM MyBundle:Table4) AS c4'
)->getResult();

Однако возникает исключение:

("[Semantical Error] line 0, col 144 near ') AS c2,
': Error: ')' is already defined.") in 

Так можно ли делать то, что я хочу, и если да, то как?

Любая помощь будет оценена :)

1 Ответ

2 голосов
/ 31 июля 2011

Ошибка из-за $em->createQuery($dql), вы можете использовать только DQL (Doctrine Query Language).

Если вы хотите использовать SQL в запросе, вы должны сделать это с Doctrine\Dbal\Connection, используйте $em->getConnection()->fetchAssoc($sql).

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...