2017-01-23 1 views
0

私はEmployeeとUnionEmployeesという2つのモデルを持っています。SqlAlchemyは、結合でクエリを使用する方法、両方の代わりに1つのエンティティから列のみを取得する方法?

を:私はこのようになりselect文を見てい

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

statement.compile使用

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

ボンネットの下にSQLを見て: は、私はこのような社員に基づいて2つに参加することができます

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文が、両方ではなく単一のエンティティに対して選択を実行するようにする方法はありますか? 1つのエンティティからのユーザーのみが必要であることがわかっている場合は、冗長なデータを取得しないようにしたいと考えています。

答えて

1

ただ、明示的な結合を使用します。

query(Employee).join(UnionEmployees, Employee.employeeid == UnionEmployee.employeeid).filter(...) 
関連する問題