2

我有以下查询:

last_entry = Table.query \
                  .group_by(Table.email) \
                  .order_by(Table.date) \
                  .subquery()

results = db.session.query(User, last_entry.c.id)  \
    .outerjoin(last_entry, User.email == last_entry.c.email)

这将获得所需的数据,但是我无法访问此“last_entry”行数据。如何让它显示在模板中?

我用这条线渲染它:

return render_template('users.html', users=results.all())

我已经尝试了一些user['last_entry']类似的解决方案,但没有成功。我可以访问用户表中的数据,只需使用用户表中的字段,例如user['first_name'],但不能对连接表执行相同操作。

4

1 回答 1

2

在中,session.query()您应该指定要在结果中看到的实体列表:

results = db.session.query(User, last_entry).outerjoin(last_entry, User.email == last_entry.c.email)

或者,您可以使用add_entity()

results = session.query(User).outerjoin(last_entry, User.email == last_entry.c.email).add_entity(last_entry)

希望有帮助。

于 2013-07-29T10:26:55.740 回答