Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将python sqlalchemy查询转换为SQL_Python_Sql_Database_Postgresql_Sqlalchemy - Fatal编程技术网

将python sqlalchemy查询转换为SQL

将python sqlalchemy查询转换为SQL,python,sql,database,postgresql,sqlalchemy,Python,Sql,Database,Postgresql,Sqlalchemy,为了完成一项任务,我正在处理一个涉及学区的postgreSQL数据库集合。我正在尝试填充新字段student\u gpas,这是一个存储唯一学生gpa的数组。我使用python和sqlalchemy通过以下代码完成了这项工作: schools = db.session.query(School).filter(school.is_selected == true).all() For sch in schools: grades = db.session.query(Grade).filte

为了完成一项任务,我正在处理一个涉及学区的postgreSQL数据库集合。我正在尝试填充新字段
student\u gpas
,这是一个存储唯一学生gpa的数组。我使用python和sqlalchemy通过以下代码完成了这项工作:

schools = db.session.query(School).filter(school.is_selected == true).all()
For sch in schools:
  grades = db.session.query(Grade).filter(grade.school_id == sch.id).all()
  For gr in grades:
    classes = db.session.query(Class).filter(class.grade_id == grades.id).all()
    For cl in classes:
      students = db.session.query(Student).filter(student.class_id == cl.id).all()
      For st in students:
    If st.gpa not in gr.student_gpas:
      gr.student_gpas.append(st.gpa)

如果我想把这段代码片段转换成一条长而复杂的SQL语句,那么它会是什么样子呢

我从sqlalchemy站点[1]获取了以下内容:

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)
echo标志是设置SQLAlchemy日志记录的快捷方式,它是通过Python的标准日志记录模块实现的。启用它后,我们将看到生成的所有SQL


[1]

这将不是一个极其复杂的sql查询,只是一个bog标准查询,包含4个表、连接和where子句,再加上一些小技巧,将值连接到一个分隔列表中。请发布这些和一些示例数据的数据库模式。