我有以下查询:
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表中的字段(例如user['first_name']
)来访问User表中的数据,但不能对连接表执行相同的操作。
答案 0 :(得分:1)
在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)
希望有所帮助。