2017-01-23 3 views
0

Ich habe zwei Modelle Employee und UnionEmployees. kann ich die beiden basierend auf Employeeid wie folgt verbinden:SqlAlchemy mit einer Abfrage mit Join, wie nur Spalten aus einer Entität anstelle von beiden erhalten?

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

an der SQL unter der Haube der Suche statement.compile

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

ich verwende die Select-Anweisung wie folgt aussehen zu sehen:

Gibt es eine Möglichkeit, die Abfrage so zu ändern, dass die von ihr kompilierte SQL-Anweisung nur Auswahlen für eine einzelne Entität anstelle von beiden ausführt? Ich möchte vermeiden, redundante Daten zu erhalten, wenn ich sicher bin, dass ich nur Benutzer von einer Einheit möchte.

Antwort

1

Verwenden Sie einfach explizite Join:

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