Python 在SQLAlchemy中,有没有一种方法可以使用一个查询来加载同一类的多个别名可选择项?

Python 在SQLAlchemy中,有没有一种方法可以使用一个查询来加载同一类的多个别名可选择项?,python,sql,sqlalchemy,Python,Sql,Sqlalchemy,我有一个SQLAlchemy映射类MyClass,还有两个别名。我可以使用selectinload()分别在每个别名上加载关系MyClass.relationship,如下所示: alias_1, alias_2 = aliased(MyClass), aliased(MyClass) q = session.query(alias_1, alias_2).options( selectinload(alias_1.relationship), selectinload(alia

我有一个SQLAlchemy映射类
MyClass
,还有两个别名。我可以使用
selectinload()
分别在每个别名上加载关系
MyClass.relationship
,如下所示:

alias_1, alias_2 = aliased(MyClass), aliased(MyClass)
q = session.query(alias_1, alias_2).options(
    selectinload(alias_1.relationship),
    selectinload(alias_2.relationship))
但是,这会导致对
MyClass.relationship
进行两次单独的SQL查询(除了对
MyClass
的主查询之外,但这与问题无关)。由于对
MyClass.relationship
的这两个查询是在同一个表中,我认为应该可以合并这些查询中
IN
子句中生成的主键,只需对
MyClass.relationship
运行一个查询

我对如何做到这一点的最佳猜测是:

alias_1, alias_2 = aliased(MyClass), aliased(MyClass)
q = session.query(alias_1, alias_2).options(
    selectinload(MyClass.relationship))
但它显然不起作用:

sqlalchemy.exc.ArgumentError:映射属性“MyClass.relationship”不适用于此查询中的任何根实体,例如别名(MyClass)、别名(MyClass)。请指定从一个根实体到目标属性的完整路径。

在炼金术中有没有办法做到这一点