これが頻繁に必要な場合、および/またはカウントがTab1
の不可欠な部分である場合 モデルの場合、他の回答で説明されているようなハイブリッドプロパティを使用する必要があります。一方、単一のクエリに対してのみこれが必要な場合は、Query.label()
を使用してスカラーサブクエリを作成できます。 、またはQuery.as_scalar()
:
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)
サブクエリは、囲んでいるクエリからできることを自動的に関連付けます。