0

ネストされたクエリでクエリをループしようとしています。私がこれまでに持っているコード:

<cfloop query="hashTableLatest">
    <cfquery name="getDifferentImages" dbtype="query">
        SELECT image, imageHash
        FROM hashTable
        WHERE imageHash = <cfqueryparam cfsqltype="cf_sql_varchar" value="#hashTableLatest.imageHash#" />
    </cfquery>
</cfloop>

私が抱えている問題は、cfqueryparam を動的にループしないことです。hashTableLatest から最初の値を取得するだけです。誰が私が間違っているのか教えてもらえますか? クエリをループして cfqueryparam を動的に変更するにはどうすればよいですか?

EDITED 単一のクエリで必要なすべての情報を取得するには:

select a.imageHash
from tblHashLatest a
WHERE a.imageHash in (SELECT c.imageHash
                  FROM tblHash c
              WHERE a.imageHash <> c.imageHash)

上記の SQL は、必要なすべての情報を取得する必要があると思います。私が探している結果は、同じではないすべてのimageHashesを取得することです

4

1 に答える 1

3

いくつかのオプションがあります。1 つは、ループを使用せず、次のようにすることです。

WHERE imageHash in ( 
<cfqueryparam cfsqltype="cf_sql_varchar" 
value="#ValueList(hashTableLatest.imageHash)#" list="yes">
)
</cfquery

可能であれば、1 つのクエリから必要なすべての情報を取得する方法を探す必要があります。

于 2014-01-17T13:28:11.237 に答える