Wenn Sie dies häufig benötigen und/oder die Zählung ein fester Bestandteil Ihres Tab1
ist model, sollten Sie eine hybride Eigenschaft verwenden, wie in der anderen Antwort beschrieben. Wenn Sie dies andererseits nur für eine einzelne Abfrage benötigen, können Sie die skalare Unterabfrage einfach mit Query.label()
erstellen , oder 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)
Die Unterabfrage korreliert automatisch so viel wie möglich mit der einschließenden Abfrage.