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

2024-10-03 04:31:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两种模式雇员和工会雇员。 我可以根据employeeid加入其中:

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

在引擎盖下使用语句.编译你知道吗

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

我看到select语句如下所示:

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语句只对单个实体执行select而不是同时对两个实体执行select?如果我确信我只需要一个实体的用户,我希望避免获得冗余数据。你知道吗


Tags: 实体sqlstatusemployee语句filterqueryselect