Я получил эти модели в приложении на основе SQLAlchemy
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(512))
status = db.Column(db.Enum(Status))
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(512))
user_tasks = db.relationship('Task',
secondary=user_tasks, lazy='subquery',
backref=db.backref('users', lazy=True)
)
user_tasks = db.Table('user_tasks',
db.Column('task_id', db.Integer, db.ForeignKey('task.id'), primary_key=True),
db.Column('user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True),
db.Column('value', db.Integer)
)
Я хочу объединить 3 таблицы (используя flask_sqlalchemy
вместо необработанного запроса), эквивалентный:
db.session.execute(
'SELECT u.id, u.name, ut.value\
FROM user u\
JOIN user_tasks ut\
ON u.id = ut.user_id\
AND ut.task_id = :task_id\
JOIN task t\
ON t.id = ut.task_id',
{'task_id': task_id}
)
Заранее спасибо