Python SQLAlchemy-按子项查询父项';在列表中找到了她的名字

Python SQLAlchemy-按子项查询父项';在列表中找到了她的名字,python,sqlalchemy,flask-sqlalchemy,Python,Sqlalchemy,Flask Sqlalchemy,我有两个班,分别是我的孩子班和家长班: 这是我的父母 class History(db.Model): id = db.Column(db.Integer, primary_key=True) imagePath = db.Column(db.Text, nullable=False) scanDate = db.Column(db.Date, nullable=False) isLastScan = db.Column(db.Boolean, nullable=

我有两个班,分别是我的孩子班和家长班: 这是我的父母

class History(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    imagePath = db.Column(db.Text, nullable=False)
    scanDate = db.Column(db.Date, nullable=False)
    isLastScan = db.Column(db.Boolean, nullable=False)

    historyClasses = db.relationship('HistoryClasses', backref='history')
这是孩子们:

class Classes(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False)

    historyClasses = db.relationship('HistoryClasses', backref='class')
我的社交课是:

class HistoryClasses(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    historyId = db.Column(db.Integer, db.ForeignKey("history.id"), nullable=False)
    classId = db.Column(db.Integer, db.ForeignKey("classes.id"), nullable=False)
    numberOfClasses = db.Column(db.Integer, nullable=False)
我试图查询每一个有孩子的父母,他们的名字在列表中。 例如:(‘人’、‘苹果’) 我需要这样的输出,但第三行只包含“person”类。

我使用以下方法解决了此问题:

        if classFilterList:
        filterList.append(Classes.name.in_(classFilterList))
        imagePaths = db.session.query(History.imagePath) \
            .outerjoin(Classifiers, Classifiers.id == History.classifierId) \
            .outerjoin(HistoryClasses, HistoryClasses.historyId == History.id) \
            .outerjoin(Classes, Classes.id == HistoryClasses.classId) \
            .filter(*filterList) \
            .group_by(History.id) \
            .having(db.func.count(HistoryClasses.classId.distinct()) == len(set(classFilterList))) \
            .all()