首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Coldfusion: SELECT FROM QoQ WHERE X in (SELECT Y FROM QoQ)不起作用

Coldfusion: SELECT FROM QoQ WHERE X in (SELECT Y FROM QoQ)不起作用
EN

Stack Overflow用户
提问于 2012-08-30 06:39:56
回答 2查看 603关注 0票数 0

在CF中,我正在尝试做一个QoQ,其中行在其他行的列表中。基本上,将一些代码从cftag移动到cfscript (原因并不重要)。在标签中,我们有一个主查询,我们有几个执行繁重任务的嵌套。我正在将其移动到cfscript,并使用以下语法:

代码语言:javascript
复制
var submissionList = new Query(dbtype="query", QoQsrcTable=ARGUMENTS.answers, sql="
SELECT submission_id FROM QoQsrcTable GROUP BY submission_id
").execute().getResult();
var submissions = new Query(dbtype="query", QoQsrcTable=ARGUMENTS.answers, sql="
    SELECT * FROM QoQsrcTable WHERE submission_id IN (#submissionList.submission_id#)
").execute().getResult();

我尝试了以下方法,但不起作用:

代码语言:javascript
复制
var submissions = new Query(dbtype="query", QoQsrcTable=ARGUMENTS.answers, sql="
    SELECT * FROM QoQsrcTable WHERE submission_id IN (SELECT submission_id FROM QoQsrcTable GROUP BY submission_id)
").execute().getResult();

我认为第二个例子应该行得通。我试过用不同的方式来处理它。但似乎找不出我做错了什么。也许嵌套的QoQ不是这样工作的。有没有其他方法可以在没有两个代码块的情况下完成我正在尝试的事情?只是为了让它更具可读性,而且我不需要两次赋值变量。

EN

回答 2

Stack Overflow用户

发布于 2012-08-30 16:49:34

QoQ不支持子查询。这就是它的长处和短处。

Docs

票数 3
EN

Stack Overflow用户

发布于 2012-08-30 11:19:56

在Coldfusion 10或Railo4中,您可以利用Underscore.cfcgroupBy function以更少的代码实现您想要的功能:

代码语言:javascript
复制
_ = new Underscore();// instantiate the library    

submissions = _.groupBy(arguments.answers, 'submission_id');

groupBy()返回一个结构,其中键是组元素的值(在本例中为submission_id)。

(免责声明:我写了Underscore.cfc)

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

https://stackoverflow.com/questions/12187486

复制
相关文章

相似问题

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