我有一个循环查询SP并在查询中返回结果,我想将该查询(无论循环运行多少次)组合成一个最终查询,以便我可以在我的jgrid表中输出。这是代码:
<cfloop query="query1">
<cfstoredproc procedure="[Columns]" datasource="#CompanyDB#">
<cfprocresult name="queryResults">
<cfprocparam cfsqltype="cf_sql_varchar" value="#query1.ID#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#query1.Role#">
</cfstoredproc>
</cfloop>
所以,这里循环2次,因此得到2个queryResults。我想将结果合并为一个大查询,以便我可以在jGrid查询中输出。
答案 0 :(得分:1)
正如Leigh所说,这不是一个很好的方法,可能会以更清洁的方式进行管理,但有几种方法可以做你所要求的:
使用queryNew()和其他相关函数构造自己的查询对象并通过每个循环填充它。
在循环中使用查询查询UNION结果,例如:
<cfloop query="query1">
<cfstoredproc procedure="[Columns]" datasource="#CompanyDB#">
<cfprocresult name="queryResults">
<cfprocparam cfsqltype="cf_sql_varchar" value="#query1.ID#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#query1.Role#">
</cfstoredproc>
<cfquery name="finalResults" dbtype="query">
<cfif isDefined('finalResults')>
( SELECT * FROM finalResults )
UNION ALL
</cfif>
( SELECT * FROM queryResults )
</cfquery>