在 sqlalchemy 中,如果你有一个模型与另一个模型建立了关系,并且希望将关系中使用的表命名为别名,可以通过使用 aliased() 函数。
在给出的示例中,你可以将企业和销售员表命名为 enterprise 和 salesman:
enterprise = relationship(
'user',
primaryjoin='foreign(trade.enterprise_id) == user.id',
alias='enterprise',
)
salesman = relationship(
'user',
primaryjoin='foreign(trade.salesman_id) == user.id',
alias='salesman',
)然后,在查询中,可以使用别名来访问相关表中的列:
query_stmt = query_stmt.join(
Trade.enterprise, isouter=True, alias="Enterprise"
)
query_stmt = query_stmt.add_columns(User)
query_stmt = query_stmt.join(Trade.salesman, isouter=True, alias="Salesman")
query_stmt = query_stmt.add_columns(User)这样,查询结果中就会包含 enterprise 和 salesman 别名,以便于访问相关列。










