0

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

亲切的问候,

4

1 回答 1

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>

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

于 2012-12-09T12:11:27.223 回答