sqlalchemy func.min和where子句

时间:2014-07-25 09:16:34

标签: sqlalchemy

我是sqlalchemy的新人,

我试图写这个选择

select job_id, 
       machine_id,
       state_id, 
       min(begin_time) as begin_time 
from job 
where machine_id = 2 
  and state_id = 2

我第一次尝试写这个..

session.query(Job).filter(and_(Job.begin_time==session.query(func.min(Job.begin_time)),
             Job.state_id==2,Job.machine_id == 2)).all()

但返回一个空列表,因为它找到了另一个min begin_time行。

我尝试过另一种方式:

jobRecordSucces = session.query(Job).filter(Job.state_id==2,Job.machine_id == 2)

jobRecordSuccessivo = session.query(jobRecordSucces).filter(jobRecordSucces .begin_time==session.query(func.min(jobRecordSucces.begin_time)))

但是第二个查询返回了我的错误

InvalidRequestError: SQL expression, column, or mapped entity expected - 
got '<sqlalchemy.orm.query.Query 
 object at 0x04491B10>'

提前感谢: - )

0 个答案:

没有答案