如何使用DQL中的子查询



使用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

相关内容

  • 没有找到相关文章

最新更新