python - SQLAlchemy:预先加载多个关系

标签 python sqlalchemy

我要查询这个结构:

A -> B
B -> C
B -> D

使用 Load 接口(interface)执行此操作的语法是什么,文档对此不是很清楚 (http://docs.sqlalchemy.org/en/latest/orm/loading_relationships.html#sqlalchemy.orm.joinedload)。我所看到的只是如何做:

A -> B
B -> C
C -> D

给定查询:

query(A).options(joinedload(A.b).joinedload(B.c))

我如何在链中向后返回以指定 B (B.d) 上的第二个关系?

最佳答案

只需添加另一个具有新关系路径的 .options(...):

q = (
    session
    .query(A)
    .options(joinedload(A.b).joinedload(B.c))
    .options(joinedload(A.b).joinedload(B.d))
)

关于python - SQLAlchemy:预先加载多个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32980987/

相关文章:

python - python web服务器如何克服GIL

python - 无法在 AWS Elastic Beanstalk 上找到 Django 应用程序的模块

python - 将列表列表的列表展平为列表列表

python - 如何为每个列名添加后缀(或前缀)?

python - SqlAlchemy 中的动态表创建和 ORM 映射

python - SQLAlchemy:故意创建一个空查询?

python - Django - 如何以最佳方式编写用户和配置文件处理?

python - Flask 和 SQLalchemy NoForeignKeysError : Could not determine join condition between parent/child tables on relationship User. 帖子

python - 将蜘蛛结果保存到数据库

python-3.x - Flask-SQLAlchemy:自动过滤 'deleted' 条目