【发布时间】:2020-04-12 20:22:32
【问题描述】:
我有两个表,Student 和 Result,具有一对一的关系。 Student 表最终将包含完整的学生个人资料信息,Result 表是每个学生的数学和英语测试结果。
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
student_name = db.Column(db.String(80), nullable=False)
result_id = db.Column(db.Integer, db.ForeignKey('result.id'), nullable=False)
result = db.relationship('Result', backref=db.backref('students', lazy=True))
class Result(db.Model):
id = db.Column(db.Integer, primary_key=True)
math_score = db.Column(db.Integer)
english_score = db.Column(db.Integer)
我想选择按两次考试成绩之和排序的前 10 名得分最高的学生。所以大致如下:
Student.query.order_by(sum_of(maths_score, english_score)).limit(10).all()
我想将查询结果显示为三列,学生姓名,数学成绩,英语成绩,从最高到最低的总和。我不需要从查询中输出测试分数的总和。我试图避免将测试分数的总和存储在结果表中。
我找不到任何示例来说明如何根据行值的函数执行这样的 flask-sqlalchemy 查询。
谁能帮忙解释一下。
【问题讨论】:
-
谢谢。这让我使用模型中定义的函数进一步挖掘,但我仍然努力将完整的查询拼凑到视图中。