Почему при многократном объединении возвращается «неоднозначное имя столбца» в FlaskSQLAlchemy? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть следующие таблицы:

class Workshop(db.Model):
    id=db.Column(db.Integer,primary_key=True)
    workshop=db.Column(db.String(255),nullable=False,unique=True)

class Location(db.Model):
    id=db.Column(db.Integer,primary_key=True)
    location=db.Column(db.String(255),nullable=False,unique=True)

class Courses(db.Model):
    id=db.Column(db.Integer,primary_key=True)
    workshop_id = db.Column(db.Integer, db.ForeignKey('workshop.id'))
    location_id = db.Column(db.Integer, db.ForeignKey('location.id'))
    when = db.Column(db.DateTime(),nullable=True)
    cost = db.Column(db.Integer(),nullable=False)

Я пытаюсь сделать несколько соединений:

workshop_id = 1
courses = db.session.query(Workshop, Courses, Location).with_entities(Workshop.workshop,course_date,Location.location).join(Workshop,Workshop.id==Courses.workshop_id).join(Courses,Courses.location_id==Location.id).filter(Courses.workshop_id==workshop_id).all()

Однако я получаю следующую ошибку:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) ambiguous column name: courses.when
[SQL: SELECT workshop.workshop AS workshop_workshop, courses."when" AS courses_when, location.location AS location_location
FROM location, courses JOIN workshop ON workshop.id = courses.workshop_id JOIN courses ON courses.location_id = location.id
WHERE courses.workshop_id = ?]

Мой вопрос состоит из двух частей: во-первых, почему она возвращает эту ошибку, если в ее любой другой таблице нет атрибута courses.when? Во-вторых, как мне это исправить?

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