2014-01-17 7 views
0

Я пытаюсь перебрать запрос с помощью вложенного запроса. Код, который я до сих пор:ColdFusion looping over query с cfqueryparam

<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 должен получить мне всю информацию, что мне нужно. Результат, который я ищу, - это получить все изображения, которые не совпадают.

+4

Ваш код верный, и он должен делать то, что вы хотите. Что заставляет вас думать, что это не так? Вы использовали CFDUMP во внутреннем запросе, чтобы проверить a) что он содержит; б) используемые SQL & params? –

+2

Почему вы зацикливаетесь на запросе и выполняете другой запрос в этом цикле? Посмотрите в JOINs, и вы сможете сделать все это в одном запросе, –

ответ

3

Есть несколько вариантов. Одним из них является не использовать петлю и просто сделать это:

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

Если возможно, вы должны искать пути, чтобы получить всю необходимую информацию из одного запроса.

+4

Согласовано. Выполнение дополнительных вызовов CFQUERY в цикле первого результата CFQUERY почти всегда является субоптимальным подходом к требованию. –

+2

Использование 'JOIN' было бы предпочтительнее, и оно должно быть выполнено в одном запросе. –

 Смежные вопросы

  • Нет связанных вопросов^_^