python - 在 Flask/SQLAlchemy/jinja 中使用外连接引用查询结果

标签 python mysql sqlalchemy flask jinja2

我有以下查询:

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'])来访问用户表中的数据,但无法对连接表执行相同的操作。

最佳答案

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)

希望有帮助。

关于python - 在 Flask/SQLAlchemy/jinja 中使用外连接引用查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17921313/

相关文章:

python - SQLAlchemy 查询,加入关系并按计数排序

python - kNN - 如何根据计算的距离在训练矩阵中定位最近的邻居

mysql - 如何检测查询是否在状态 “Sending data” 下运行

php - WordPress的Rest API在哪里执行对数据库的查询?

postgresql - SQlAlchemy 批量插入对 postgresql 连接字符串占用了太多时间

python - SQLAlchemy中,dict更新方法如何与ORM交互?

python - n维点集凸包的顶点

python - 如何使用 python 的 scipy.stats.levy 限制步长?

python - 使用Python访问带有可变列名的SQL

php - MySQL 查询中的 session 变量