CF では、行が他の行のリストにある QoQ を実行しようとしています。基本的に、一部のコードを cftags から cfscript に移動します (理由は重要ではありません)。タグにはメインクエリがあり、いくつかの重労働を行うネストがいくつかあります。これを cfscript に移動しており、次の構文が機能しています。
var submissionList = new Query(dbtype="query", QoQsrcTable=ARGUMENTS.answers, sql="
SELECT submission_id FROM QoQsrcTable GROUP BY submission_id
").execute().getResult();
var submissions = new Query(dbtype="query", QoQsrcTable=ARGUMENTS.answers, sql="
SELECT * FROM QoQsrcTable WHERE submission_id IN (#submissionList.submission_id#)
").execute().getResult();
私は次のことを試しましたが、うまくいきません:
var submissions = new Query(dbtype="query", QoQsrcTable=ARGUMENTS.answers, sql="
SELECT * FROM QoQsrcTable WHERE submission_id IN (SELECT submission_id FROM QoQsrcTable GROUP BY submission_id)
").execute().getResult();
2番目の例がうまくいくはずだと思います。いろいろいじってみました。しかし、私が間違っていることを理解できないようです。ネストされた QoQ はそのようには機能しないかもしれません。コードの 2 つのチャンクなしで、私が試みていることを達成できる別の方法はありますか? より読みやすく、変数を 2 回割り当てる必要がないようにするためです。