【发布时间】:2010-10-30 04:15:32
【问题描述】:
我需要一个查询,该查询可以返回表 A 中的记录,该记录在表 B 中具有多于 COUNT 条记录。该查询需要能够与可能应用于表 A 的其他过滤器保持一致。
示例案例研究:
我有一个人和约会表。我正在寻找所有参加过 5 次或更多约会的人。它还必须支持 person 表上的额外过滤语句,例如 age > 18。
编辑——解决方案
subquery = db.session.query(Appointment.id_person,
func.count('*').label('person_count')) \
.group_by(Appointment.id_person).subquery()
qry = db.session.query(Person) \
.outerjoin((subquery, Person.id == subquery.c.id_person)) \
.order_by(Person.id).filter(subquery.c.person_count >= 5).filter(Person.dob <= '1992-10-29')
【问题讨论】:
标签: python sql sqlalchemy