I'm trying to select the newest threads (Thread) ordered descending by the time of the most recent reply to them (the reply is a Post model, that's a standard forum query). In SQL I'd write it like this:
SELECT * FROM thread AS t ORDER BY (SELECT MAX(posted_at) FROM post WHERE thread_id = t.id) DESC
How do I do such thing in SQLAlchemy? I tried something like this:
scalar = db.select[func.max(Post.posted_at)].where(Post.thread_id == Thread.id).as_scalar()
threads = Thread.query.order_by(scalar.desc()).all()
But it seems that I don't understand how scalars work. Reading docs for the 5th time won't help. Could someone help me write such query in SQLAlchemy? I use flask-sqlalchemy and MySQL for this app.