使用Zend Framwork 3和学说2。我得到了一个相对复杂的DQL,具有多个连接的含有和在哪里。
我现在需要在head子句中获得具有不同参数的查询的一些rowcounts。我认为SELECT COUNT(*) FROM (original-query) AS c
是最简单的方法。但是,当尝试使用本机查询时,我会遇到问题从DQL绑定到本机查询以及尝试执行STH时的问题。喜欢
$queryBuilder->select('count(c)')->from('('.$originalQuery->getDQL().')', 'c');
我得到:
Error: Class '(' is not defined.
更新:
似乎您不能那样使用它:
stof创建的评论:
dql是关于查询对象的。支持子选择 条款意味着DQL解析器无法构建结果集 映射了(因为子查询返回的字段可能不匹配 对象了(。这就是为什么不能支持它的原因(支持它 仅对于您在没有水合的情况下运行查询的情况下是不做的 IMO,因为这意味着查询解析需要取决于 执行模式(。
在您的情况下,最好的解决方案可能是运行SQL查询 (当您获得标量时,您不需要ORM水合(
https://github.com/doctrine/doctrine2/issues/3542