[Python] SQLAlchemy Union Parenthese-Problem


Answers

Question

Ich muss eine Abfrage ähnlich der folgenden generieren:

(select * from ... where .. and .. order by .. limit ..)
union all
(select * from ... where .. and .. order by .. limit ..)
order by ..

Mit SQLAlchemy erstelle ich zwei Abfrageobjekte wie in:

q1 = Session.query(..).filter(..).filter(..).order_by(..).limit(..)
q2 = Session.query(..).filter(..).filter(..).order_by(..).limit(..)
q = q1.union_all(q2).order_by(..).all()

Es wird jedoch nicht funktionieren, da SQLAlchemy Abfragen erzeugt: q1 und q2 sind nicht in Klammern und es erzeugt einen Fehler.

Wie kann ich diese Anweisungen in Klammern für q1 q2 Union erhalten, um in oben ausgedrückte Abfrage zu führen?