对同一个表进行多次join联合查询,例如查询一个用户表,需要返回创建用户的名称和修改用户的名字,创建者和修改者实际上都是从用户表中查询数据,这时就涉及到对同一个用户表进行两次join,此时解决办法,就是对用户表这个模型类取别名(使用aliased):
from sqlalchemy import aliased
creator = aliased(User)
modifier = aliased(User)
session.query(creator.name.label(creatorname)(注解:label给属性取别名),modifier.name).join(creator,creator.id==ap.id,isouter=true)(isouter=true表示左连接).join(modifier,modifier.id==ap.id,isouter=true)