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にのみ使用されることです。これにより、一致が得られないか、予想よりもはるかに少なくなります。

最初のクエリの結果が他の場所で使用されていない場合は、すべてを1つのクエリに含めることをお勧めします。このようなもの:

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

また、ここに2つの制限があることが理にかなっているかどうかはわかりませんが、意味のある提案を行うための十分な情報がありません。

于 2012-12-09T12:11:27.223 に答える