Hvis du ofte har brug for dette, og/eller optællingen er en integreret del af din Tab1
model, skal du bruge en hybrid egenskab som beskrevet i det andet svar. Hvis du på den anden side har brug for dette kun til en enkelt forespørgsel, så kan du bare oprette den skalære underforespørgsel ved hjælp af 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)
Underforespørgslen vil automatisk korrelere, hvad den kan fra den vedlagte forespørgsel.