gpt4 book ai didi

python - 以一对多关系选择和排序记录

转载 作者:行者123 更新时间:2023-12-01 03:48:12 26 4
gpt4 key购买 nike

考虑下表:

Student
-------
id
name

Assignment
----------
id
name

Grade
-----
id
student_id
assignment_id
grade

一个学生可以有多个成绩,对应不同的作业。

现在,我想选择记录来生成一个如下所示的表:

Name      Assignment 1      Assignment 2    Assignment 3
--------------------------------------------------------
Bob 55% 80% 23%
Suzy 90% 65% 100%

而且,我希望能够按其中一个成绩进行排序(即作业 1)

这可以用 SQL 来完成吗?作为额外的好处,这可以用flask-sqlalchemy 来完成吗?

我有一个想法,我需要进行 JOIN 和 ORDER BY,但我真的不知道该去哪里。

谢谢!

最佳答案

如果您使用 SQLite,则必须使用 SQL 的最小公分母,这意味着您要考虑的每个分配都需要连接:

SELECT
name,
Grade1.grade AS assignment1,
Grade2.grade AS assignment2,
Grade3.grade AS assignment3
FROM
Student
LEFT JOIN Grade AS Grade1 ON (Student.id = Grade1.student_id and Grade1.assignment_id = ...)
LEFT JOIN Grade AS Grade2 ON (Student.id = Grade2.student_id and Grade2.assignment_id = ...)
LEFT JOIN Grade AS Grade3 ON (Student.id = Grade3.student_id and Grade3.assignment_id = ...)
ORDER BY Grade1.grade

将其转换为 SQLAlchemy 应该很简单。

关于python - 以一对多关系选择和排序记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38643315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com