単一のクエリを使用して、特定の列に同じ値を持つテーブルからすべてのレコードを選択できるようにしたいと考えています。
明確化
条件: - document_id は主キーではありません。
リスト ID = SELECT DISTINCT T.document_id FROM テーブル T;
list block = SELECT * from table where document_id = ids.next();
- ブロックに対して操作を実行し、次のブロックを取得します
これら 2 つのクエリを 1 つのクエリに変換する方法を教えてください。
アップデート
@Marco @StephanB私の質問が漠然としていて本当に申し訳ありません...もっと具体的にすることを学ぶ必要があります...
とにかく、私は Torque で JAVA と Apache Turbine を使用しています。変更したいコードは次のとおりです。
public void runQueue (String username, Customer customer) {
Criteria c = new Criteria();
c.add( DataEntryQueuePeer.CUSTOMER_ID, customer.getId());//DataEntryQueue.CUSTOMER_ID is not the primary key
c.add( DataEntryQueuePeer.STATUS, DataEntryQueue.STATUS_IN_KEYING );
c.add( DataEntryQueuePeer.DATA_ENTRY_USERID, username );
c.add( DataEntryQueuePeer.QUEUE_TYPE, Constants.CUSTOMER_QUEUE );
List<DataEntryQueue> v = DataEntryQueuePeer.doSelect( c );
if( v.size() > 0 ) {
//do something with v
v.setStatus(DataEntryQueue.STATUS_KEYING_COMPLETE);
v.setModified(true);
v.save();
}
}
すべての「doSelect」で同じ document_id を持つレコードのみが選択されるように、基準にもう 1 つのフィールド (DataEntryQueuePeer.DOCUMENT_ID) を追加したいと考えています。ただし、特定の DOCUMENT_ID はメソッドに渡されません。
私がまだ十分に明確でない場合はお知らせください...ありがとう。