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文檔中的子查詢。 –