Om du behöver detta ofta och/eller räkningen är en integrerad del av din Tab1
modell, bör du använda en hybridegenskap som beskrivs i det andra svaret. Om du å andra sidan behöver detta bara för en enda fråga, kan du bara skapa den skalära underfrågan med Query.label()
, eller 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)
Underfrågan kommer automatiskt att korrelera vad den kan från den bifogade frågan.