SQLAlchemy - subconsulta em uma cláusula WHERE
Acabei de começar a usar o SQLAlchemy e ainda estou tendo problemas para entender alguns dos conceito
Broiled para os elementos essenciais, eu tenho duas tabelas como esta (isto é através Flask-SQLAlchemy):
class User(db.Model):
__tablename__ = 'users'
user_id = db.Column(db.Integer, primary_key=True)
class Posts(db.Model):
__tablename__ = 'posts'
post_id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey('users.user_id'))
post_time = db.Column(db.DateTime)
user = db.relationship('User', backref='posts')
Como eu consultaria uma lista de usuários e sua postagem mais recente (excluindo usuários sem postagens). Se eu estivesse usando SQL, faria:
SELECT [whatever]
FROM posts AS p
LEFT JOIN users AS u ON u.user_id = p.user_id
WHERE p.post_time = (SELECT MAX(post_time) FROM posts WHERE user_id = u.user_id)
Então, eu sei exatamente o SQL "desejado" para obter o efeito desejado, mas não faço ideia de como expressá-lo "corretamente" no SQLAlchem
Edit: caso seja importante, estou no SQLAlchemy 0.6.