Doctrine2& Symfony2在一个查询中多次计数

时间:2011-07-31 13:03:58

标签: doctrine-orm symfony

我想用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 个答案:

答案 0 :(得分:1)

错误与$em->createQuery($dql)有关,您只能使用DQL(学说查询语言)。

如果您想在查询中使用 SQL ,则必须使用Doctrine\Dbal\Connection$em->getConnection()->fetchAssoc($sql)

希望这对你有所帮助。