检索包含多个子项的表中的所有行(这是多对多的一部分)的最佳方法是什么?我试过了:
session.query(Parent).filter(len(Parent.children)>1).all()
但我收到错误' InstrumentedAttribute'没有len()'。我已经能够让所有父母至少有一个孩子使用:
session.query(Parent).filter(Parent.children).all()
答案 0 :(得分:5)
使用having()
from sqlalchemy import func
session.query(Parent).\
join(Parent.children).\
group_by(Parent).\
having(func.count(Child.id) > 1)