我希望能够使用单个查询从表中选择在特定列中具有相同值的所有记录。
<标题>澄清h1> 件:- document_id不是主键List id = SELECT DISTINCT T.document_id FROM table T;
List block = SELECT * from table where document_id = ids.next();
- 在块上执行操作,然后检索下一个块
谁能告诉我如何将这两个查询转换成一个查询?
<标题> 更新@Marco @StephanB真的很抱歉,我的问题太模糊了…我应该学会更具体一些……无论如何,我正在使用JAVA和Apache涡轮机与扭矩。下面是我想修改的代码:
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();
}
}
我想在标准中添加一个字段(DataEntryQueuePeer.DOCUMENT_ID),以便在每个"doSelect"上只选择具有相同document_id的记录。没有特定的DOCUMENT_ID被传递给方法。
标题>标题>您的SQL格式错误。一个正确的问题更有可能得到一个正确的答案。我将把您的桌子命名为A和b。
SELECT * FROM B WHERE B.document_id IN (SELECT DISTINCT A.document_id FROM A)