У меня есть следующие таблицы:
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? Во-вторых, как мне это исправить?