ben*_*nvc 5 python join sqlalchemy
是否有使用sqlalchemy的更简洁的语法joinedload来渴望从一个以上的表加载项目,而该表仅通过另一个中间表与查询表相关(或者是否有一种更适合我尝试执行的加载语法) ?
例如,使用常见的问题,答案等数据结构,比下面的示例有更简洁的方法来查询问题,渴望加载相关答案以及渴望加载答案注释和答案票(假设,对于此示例,这两个与答案相关的项目都包含在单独的表格中)?
from sqlalchemy.orm import joinedload
result = session.query(Question).\
options(
joinedload(Question.answers).
joinedload(Answer.comments)
).\
options(
joinedload(Question.answers).
joinedload(Answer.votes)
).\
filter(Question.id == '1').\
first()
Run Code Online (Sandbox Code Playgroud)
在“ 关系加载技术”(或与此相关的其他任何地方)中,我找不到通过中间表加载多个表的任何示例。我确实尝试在一个单一的对象中包含多个子关系joinedload...
result = session.query(Question).\
options(joinedload(Question.answers, Answer.comments, Answer.votes)).\
filter(Question.id == '1').\
first()
Run Code Online (Sandbox Code Playgroud)
...但是这种方法并不奇怪,只是将联接链化了。
Chr*_*cca 17
那么你的代码将是这样的:
result = session.query(Question).\
options(
joinedload(Question.answers).\
options(
joinedload(Answer.comments),
joinedload(Answer.votes)
)
).\
filter(Question.id == '1').\
first()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |