首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Doctrine_RawSql查询中的聚合值

Doctrine_RawSql查询中的聚合值
EN

Stack Overflow用户
提问于 2010-02-18 17:03:34
回答 3查看 2.1K关注 0票数 4

是否可以在Doctrine_RawSql查询中使用聚合值?这是我想要做的:

代码语言:javascript
复制
$q = new Doctrine_RawSql();
$q->select('{q.*}, AVG(a.value) AS avg');
$q->from('-- complex from clause');
$q->addComponent('q', 'Question');

但是,Doctrine创建的SQL只保留表question中的列,并省略聚合值avg

EN

回答 3

Stack Overflow用户

发布于 2010-12-02 06:15:53

我以前从未使用过Doctrine_RawSql,但我使用以下两种方法中的任何一种通过Doctrine执行过原始SQL查询:

代码语言:javascript
复制
Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAssoc("YOUR SQL QUERY HERE");

代码语言:javascript
复制
$doctrine = Doctrine_Manager::getInstance()->getCurrentConnection()->getDbh();
$result = $doctrine->query('YOUR SQL QUERY HERE');

看起来这两种方法可以让你的原始SQL保持不变。

我应该注意到,我在Symfony 1.4应用程序的上下文中使用Doctrine 1.2,但是AFAIK,无论您使用的是什么其他框架,这对您都是有效的。

票数 6
EN

Stack Overflow用户

发布于 2010-11-29 09:31:37

你看过doctrine cookbook section on aggregates了吗?它们在实体管理器上使用createQuery方法,而不是RawSql对象。

我不是理论方面的专家,但这可能是一个很好的起点!

票数 0
EN

Stack Overflow用户

发布于 2012-05-24 16:38:43

尝试将聚合字段放入SQL中,然后使用花括号获取它。我使用SQL子查询。

代码语言:javascript
复制
$q = new Doctrine_RawSql();
$q->select('{s.*}, {s.avg} AS avg');
$q->from('(SELECT q.*, AVG(value) AS avg FROM Question AS q) AS s');
$q->addComponent('s', 'Question');

这对我很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2287368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档