首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CfWheels:子查询解决方案

CfWheels:子查询解决方案
EN

Stack Overflow用户
提问于 2016-05-12 00:45:24
回答 1查看 116关注 0票数 1

我正在使用CFWheels,并试图找到一种执行子查询的方法。我想知道有哪些选项可用。目前,我正在使用普通的旧Coldfusion查询构建我的查询,并在执行中添加一个巨大的查询字符串。我想知道是否有更多使用CFWheels模型功能的更清晰的选项。

我的表格是:

我希望对该表执行以下查询:

代码语言:javascript
复制
select COUNT(tb1.formid) as number_of_submission, tb1.formid
from ( select formid, room, inspector
from test_tbl
group by formid, room, inspector) tb1
group by tb1.formid;

其中显示了以下内容:

更详细地说,内部查询给出了:

EN

回答 1

Stack Overflow用户

发布于 2016-05-13 22:31:42

有一个可用于模型的分组功能,如下所示:

代码语言:javascript
复制
counts=model("test_tbl").findAll( 
     select="tb1.formid, COUNT(tb1.formid) AS publishCount"
    , group="formid, room, inspector"
);

但是,除非你能找到一种方法来做一个单独的组来获得结果,否则你不能以这种方式使用模型。

不过,还有一些其他选择,这些选择可能被视为不太有利。

使用(db)视图-我已经有几个具有这种分组的视图,并且我在这些视图上使用模型进行只读交互。缺点是,一些逻辑在视图中,因此进行更改会有点麻烦。

使用select,但将其作为模型内的函数-将select函数添加到模型内,并通过函数使其可用。当您想要访问这种分组或计数时,您可以像这样调用模型test_tbl.getSubmissions()。这样,您的选择代码就在模型中,而不是控制器。

奇闻轶事。不久前,我查看了一系列模型,并用select替换了复杂的多表关系,从而显著提高了性能。因此,使用select不一定是一件坏事。

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

https://stackoverflow.com/questions/37168726

复制
相关文章

相似问题

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