Recientemente comencé a usar SQLAlchemy y todavía tengo problemas para entender algunos de los conceptos.SQLAlchemy: subconsulta en una cláusula WHERE
Reducida a los elementos esenciales, tengo dos tablas de este tipo (esto es a través matraz de 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')
¿Cómo hago para consultar una lista de usuarios y su nuevo puesto (excluyendo usuarios sin publicaciones). Si yo estaba usando SQL, lo haría:
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)
Así que sé exactamente el SQL "deseada" para conseguir el efecto que quiero, pero no sabía cómo expresarlo "correctamente" en SQLAlchemy.
Editar: en caso de que sea importante, estoy en SQLAlchemy 0.6.6.
¿Qué significa la 'C' representan en 't.c.user_id'? – Rus925
'c' significa 'columnas' – 10flow