0

我希望能够使用单个查询从表中选择在特定列中具有相同值的所有记录。

澄清

条件: - document_id 不是主键。

列表 ids = SELECT DISTINCT T.document_id FROM table T;

List block = SELECT * from table where document_id = ids.next();

  • 对块执行操作,然后检索下一个块

谁能告诉我如何将这两个查询转换为一个查询?

更新

@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();
    }
}

我想在条件中再添加一个字段(DataEntryQueuePeer.DOCUMENT_ID),以便在每个“doSelect”上只选择具有相同 document_id 的记录。但是,没有将特定的 DOCUMENT_ID 传递给该方法。

如果我还不够清楚,请告诉我...谢谢。

4

1 回答 1

0

您的 SQL 格式错误。一个正确的问题更有可能检索到正确的答案。我会给你的表命名为 A 和 B。

SELECT * FROM B WHERE B.document_id IN (SELECT DISTINCT A.document_id FROM A)
于 2011-11-24T09:48:18.643 回答