![](/img/trans.png)
[英]How do I join two ORM tables in sqlalchemy, but get both columns back?
[英]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.