Перевод SQL-запросов Python в SQL - PullRequest
0 голосов
/ 16 октября 2018

Для задания я работаю с коллекцией баз данных postgreSQL, в которых участвует школьный округ.Я пытаюсь заполнить новое поле student_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

1 Ответ

0 голосов
/ 16 октября 2018

Чтобы увидеть, что генерируется, просто создайте движок с флагом echo = True.

Я взял следующее с сайта sqlalchemy [1]:

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)

Эхоflag - это ярлык для настройки ведения журнала SQLAlchemy, который выполняется с помощью стандартного модуля ведения журналов Python.Если он включен, мы увидим весь сгенерированный SQL.

[1] https://docs.sqlalchemy.org/en/latest/orm/tutorial.html#connecting

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...