以某种方式在使用现有变量时在CF中运行某些查询时,没有输出显示。这些是查询:
<cfquery name = "group" datasource = "#DSN#">
SELECT *
FROM groups
WHERE ownerid=#user.id#
ORDER by id
LIMIT 0, 30
</cfquery>
<cfquery name = "groups" datasource = "#DSN#">
SELECT *
FROM group_requests
WHERE groupid=#group.ownerid#
ORDER by groupid
LIMIT 0, 30
</cfquery>
<cfoutput query="groups">
#groupid#
</cfoutput>
首先,您可以看到#user.id#中的所有值,然后在#groep.ownerid#中再次使用第一个查询中的值。不知何故,这将不会显示任何输出值。是的,有值显示。
亲切的问候,
答案 0 :(得分:3)
我想问题是,如果第一个查询返回多个记录,则只使用第一个group.ownerid
- 这可能没有匹配,或者比你期望的要少得多。
如果第一个查询的结果没有在别处使用,我建议在单个查询中使用它。像这样:
<cfquery name = "groups" datasource = "#DSN#">
SELECT *
FROM group_requests
WHERE groupid in
(
SELECT ownerid
FROM groups
WHERE ownerid = <cfqueryparam cfsqltype="cf_sql_integer" value="#user.id#" />
LIMIT 0, 30
)
ORDER by groupid
LIMIT 0, 30
</cfquery>
此外,我不确定这里有两个限制是否合理,但是没有足够的信息来提出有意义的建议。