没有显示输出值

时间:2012-12-09 10:55:30

标签: mysql coldfusion

以某种方式在使用现有变量时在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#中再次使用第一个查询中的值。不知何故,这将不会显示任何输出值。是的,有值显示。

亲切的问候,

1 个答案:

答案 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>

此外,我不确定这里有两个限制是否合理,但是没有足够的信息来提出有意义的建议。