SQLAlchemy按子项数

时间:2015-12-09 15:02:09

标签: python sql sqlalchemy many-to-many

检索包含多个子项的表中的所有行(这是多对多的一部分)的最佳方法是什么?我试过了:

session.query(Parent).filter(len(Parent.children)>1).all() 

但我收到错误' InstrumentedAttribute'没有len()'。我已经能够让所有父母至少有一个孩子使用:

session.query(Parent).filter(Parent.children).all()

1 个答案:

答案 0 :(得分:5)

使用having()

from sqlalchemy import func

session.query(Parent).\
        join(Parent.children).\
        group_by(Parent).\
        having(func.count(Child.id) > 1)