Während ich eine andere Frage beantworte , dr \ u00f6cke ich eine Wand ein versuchen, eine Hybrid-Eigenschaft zu erzeugen, die ein Funktionsausdruck umschließt eine skalare Unterabfrage, die alle seine FROM-Objekte von der einschließenden Abfrage korreliert, aber es würde immer noch ein FROM-Objekt bereitstellen, wenn nein Ein anderer Ausdruck in der einschließenden Abfrage stellt die Tabelle bereit, mit der er korrelieren kann.
Eine Spielzeugmodelldefinition gegeben
%Vor%Das Problem ist das
%Vor%führt zu
%Vor%, da es in der einschließenden Abfrage nichts zu korrelieren hat. Ein einfaches Mittel ist es, select_from()
zu verwenden Fügen Sie das FROM-Objekt explizit hinzu:
und die resultierende Abfrage ist das gewünschte
%Vor% Während dies funktioniert, fügt es einen mentalen Overhead hinzu, da Sie daran denken müssen, das select_from(Foo)
hinzuzufügen, wenn Sie nur die hybride Eigenschaft auswählen. Dies ist kein Problem, wenn ein anderes ausgewähltes Element Foo :
Gibt es eine Möglichkeit, den zurückgegebenen Funktionsausdruck func.array(...)
- oder die innere skalare Unterabfrage mit Anmerkungen zu versehen, so dass Foo als FROM-Objekt bereitgestellt wird, wenn kein anderer Ausdruck dies ermöglicht. Oder mit anderen Worten, nur eine Möglichkeit, Foo als from_obj
zum Funktionsausdruck oder zur skalaren Unterabfrage hinzuzufügen, so dass die inneren Selects das verwenden können.
Tags und Links python postgresql sqlalchemy