擅长:python、mysql、java
<p>如果您经常需要这样做,并且/或者计数是<code>Tab1</code>模型不可分割的一部分,那么您应该使用混合属性,如另一个答案中所述。另一方面,如果您只需要一个查询,那么您可以使用<a href="http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.label" rel="noreferrer">^{<cd2>}</a>或<a href="http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.as_scalar" rel="noreferrer">^{<cd3>}</a>创建标量子查询:</p>
<pre><code>count_stmt = session.query(func.count(1)).\
filter(Tab2.tab1_id == Tab1.id).\
group_by(Tab2.col1).\
label('cnt')
session.query(Tab1, count_stmt).filter(...).limit(100)
</code></pre>
<p>子查询将<a href="http://docs.sqlalchemy.org/en/latest/core/tutorial.html#correlated-subqueries" rel="noreferrer">automatically correlate</a>它可以从封闭查询中得到什么。</p>