我有这样的表:
箱
| - issues []
问题
| - status_id
| - status(通过status_id相关)
状态
| - id
我希望获得所有框,其中每个框的“问题”字段仅包含没有status_id = 5的问题。以下内容无效
db.session.query(Box).join(Issue).filter(Issue.status_id!= 5).all()
上述代码有什么问题?
答案 0 :(得分:1)
如果我理解了你的情况,我认为你正在寻找以下内容:
db.session.query(Box).outerjoin(Box.issues).filter(or_(Issue.status_id.is_(None), Issue.status_id != 5)).options(contains_eager(Box.issues)).all()