select语句列SQL是有办法让SQLAlchemy中生成一个自定义列,它是与当前行相关子查询的查询:使用ORM API生成与子查询中使用的SQLAlchemy
SELECT
tab1.id,
tab1.col1,
...,
(
SELECT count(1) FROM tab2
WHERE tab2.tab1_id = tab1.id
GROUP BY tab2.col1
) as cnt
FROM tab1
WHERE ...
LIMIT 100
?
session.query(Tab1, ?(subquery for additional column)?).filter(...).limit(100)
我使用PostgreSQL 9.3和旧版本的SQLAlchemy 0.9.8
您需要一个标量子查询。 ['Query.label()'](http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.label)或'Query.as_scalar()'将得到你那个。另请阅读[标量选择](http://docs.sqlalchemy.org/en/latest/core/tutorial.html#scalar-selects)以及关联Core文档中的子查询。 –