在DQL中限制子查询结果

时间:2014-07-22 08:24:56

标签: symfony dql

我想在DQL查询中的SELECT子查询中使用LIMIT 1 clausule ...我该怎么做?

"SELECT partial p.{productId, productName, count, price, utwTs},
                       (
                           SELECT pp.fileName
                           FROM AdminBundle:ProductPhoto pp 
                           WHERE pp.productId = p.productId 
                           // LIMIT 1 <--- here
                       ) AS photo_name,
                       u.avatarName     
                FROM AdminBundle\Entity\Product p
                LEFT JOIN AdminBundle\Entity\Users u WITH u.id = p.userId
                LEFT JOIN AdminBundle\Entity\Shop sh WITH sh.userId = u.id
                LEFT JOIN AdminBundle\Entity\Stand s WITH p.standId = s.standId
                WHERE p.active = 1 and p.productId > 0";

我该怎么做?我不能使用原生sql,因为分页(knpbundle)不会工作。

1 个答案:

答案 0 :(得分:0)

出于安全原因,这是不可能的......

看到这个 - &gt; http://www.doctrine-project.org/jira/browse/DDC-885

最终你仍然可以将子查询带入查询并使用 - &gt; setMaxResults(XX)限制结果,并将其用于主查询。