SQLAlchemy:如何从多个表中选择max

时间:2016-05-25 13:49:46

标签: python sqlalchemy

我开始以ORM方式而不是SQL方式使用sqlalchemy。我很快就通过了doc,但是我找不到如何轻松地完成SQL的相应操作:

select max(Table1.Date) from Table1, Table2
where...

我能做到:

session.query(Table1, Table2)
...
order_by(Table1.c.Date.desc())

然后选择第一行但它必须非常低效。谁能告诉我选择最大值的正确方法是什么?

非常感谢

1 个答案:

答案 0 :(得分:1)

理想情况下,人们会知道查询的其他部分。但是没有任何其他信息,下面应该这样做

import sqlalchemy as sa

q = (
    session
    .query(sa.func.max(Table1.date))
    .select_from(Table1, Table2)  # or any other `.join(Table2)` would do
    .filter(...)
    .order_by(Table1.c.Date.desc())
)