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()