Pokud to potřebujete často a/nebo je počet nedílnou součástí vaší Tab1
modelu, měli byste použít hybridní vlastnost, jak je popsáno v jiné odpovědi. Pokud to na druhou stranu potřebujete pouze pro jeden dotaz, můžete vytvořit skalární poddotaz pomocí Query.label()
nebo 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)
Poddotaz automaticky koreluje, co může z přiloženého dotazu.