繁体   English   中英

SqlAlchemy使用带有连接的查询,如何仅从一个实体获取列而不是从两个实体获取列?

[英]SqlAlchemy using a query with join, how to get only columns from one entity instead of both?

我有两个模型Employee和UnionEmployees。 我可以像这样基于employeeid加入两者:

query = session.query(Employee,UnionEmployees)\
.filter(Employee.employeeid==UnionEmployees.employeeid)\
.filter_by(union_status='active')

使用statement.compile深入了解SQL

sql = str(query.statement.compile(dialect=mysql.dialect()))

我看到选择语句看起来像这样:

select Employee.employeeid, Employee.first_name....UnionEmployee.employeeId, UnionEmployee.first_name...
...
from Employee join UnionEmployee
on Employee.employeeid = UnionEmployee.employeeid
where UnionEmployee.union_status = 'active'

有没有一种方法可以更改查询,以便从其编译的sql语句仅对单个实体(而不是对两个实体)执行选择? 如果我确定只希望来自一个实体的用户,我希望避免获取冗余数据。

只需使用显式联接:

query(Employee).join(UnionEmployees, Employee.employeeid == UnionEmployee.employeeid).filter(...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM