如何在sqlalchemy中连接两个关于公共关系的查询?

2024-03-28 14:29:30 发布

您现在位置:Python中文网/ 问答频道 /正文

{{cd2>两个类都有关系。 假设我已经定义了两个查询,qa和{},它们查询各自的子类。 我想在拥有相同的parent时将qb加入{}。在

如果parent只是一个普通的专栏,我可以执行以下操作:

subquery = qb.subquery()
joined_query = qa.join(subquery, AliasedChildA.parent==subquery.columns.parent)

这里,AliasedChildAChildA的别名。(我完全可以控制查询的创建方式,但不能控制以后应用于查询的过滤器。) 但是现在,由于parent是一个关系,它不包含在subquery.columns中。在

我如何在拥有相同的qa和{}时加入它们?在


Tags: columns定义关系query子类qaparentjoin
2条回答

AliasedChildA.parent_id == subquery.c.parent_idand_一些子句,如果你有一个复合pk)试试。在

尝试以下操作:

qa = session.query(ChildA)
qb = session.query(ChildB)
# @note: *qa* and *qb* may include other filters etc, 
# but assuming they do not contain joins on *Parent*
subquery = qb.subquery()
qry = qa.join(Parent).join(subquery)

相关问题 更多 >