Als je dit vaak nodig hebt, en/of de telling is een integraal onderdeel van je Tab1
model, moet u een hybride eigenschap gebruiken zoals beschreven in het andere antwoord. Als u dit daarentegen voor slechts één query nodig heeft, kunt u de scalaire subquery maken met behulp van Query.label()
, of 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)
De subquery correleert automatisch wat het kan uit de bijgevoegde query.