Java 根据特定列中具有相同值的记录,一次选择一组记录

Java 根据特定列中具有相同值的记录,一次选择一组记录,java,mysql,apache-torque,Java,Mysql,Apache Torque,我希望能够使用单个查询从表中选择特定列中具有相同值的所有记录 澄清 条件: -文档id不是主键 列表id=从表T中选择不同的T.document\u id 列表块=从表中选择*,其中document_id=ids.next() 对块执行操作,然后检索下一个块 谁能告诉我如何将这两个查询转换为一个查询 更新 @Marco@StephanB真的很抱歉我的问题太多了…我应该学会更具体一些 无论如何,我正在使用JAVA和Apache Turbine与Torque。 以下是我要更改的代码: publi

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

澄清 条件: -文档id不是主键

列表id=从表T中选择不同的T.document\u id

列表块=从表中选择*,其中document_id=ids.next()

  • 对块执行操作,然后检索下一个块
谁能告诉我如何将这两个查询转换为一个查询

更新 @Marco@StephanB真的很抱歉我的问题太多了…我应该学会更具体一些

无论如何,我正在使用JAVA和Apache Turbine与Torque。 以下是我要更改的代码:

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();
    }
}
public void运行队列(字符串用户名、客户){
标准c=新标准();
c、 添加(DataEntryQueuePeer.CUSTOMER_ID,CUSTOMER.getId());//DataEntryQueue.CUSTOMER_ID不是主键
c、 添加(DataEntryQueuePeer.STATUS、DataEntryQueue.STATUS_在_键控中);
c、 添加(DataEntryQueuePeer.DATA\u ENTRY\u USERID、用户名);
c、 添加(DataEntryQueuePeer.QUEUE_类型,Constants.CUSTOMER_队列);
List v=DataEntryQueuePeer.doSelect(c);
如果(v.size()>0){
//用v做点什么
v、 设置状态(DataEntryQueue.STATUS_KEYING_COMPLETE);
v、 setModified(真);
v、 save();
}
}
我想在条件中再添加一个字段(DataEntryQueuePeer.DOCUMENT\u ID),以便在每个“doSelect”上只选择具有相同DOCUMENT\u ID的记录。但没有向方法传递特定的文档ID


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

您的SQL格式不正确。正确的问题更有可能得到正确的答案。我给你的桌子命名为A和B

SELECT * FROM B WHERE B.document_id IN (SELECT DISTINCT A.document_id FROM A)

在检索下一个块之前,如何对查询中的块执行操作?您需要一个存储过程。在代码中这样做不是更容易吗?您使用哪种语言?因此每一行都指向您需要阅读的下一行?我相信你的数据库设计是有缺陷的-你的问题可能没有可接受的解决方案。如果你解释一下你将在你的项目中做什么,我们可能会建议一个更好的设计。你说的格式错误是指我在两个查询中有相同的表名吗?如果是的话,这就是我的要求。没有A和B表,只有A。我想你的解决方案在两个表之间有效。有没有办法让它在同一张桌子上工作?谢谢