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

我希望对该表执行以下查询:
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;其中显示了以下内容:

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

发布于 2016-05-13 22:31:42
有一个可用于模型的分组功能,如下所示:
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不一定是一件坏事。
https://stackoverflow.com/questions/37168726
复制相似问题