Rekursives CTE mit Ecto verwenden

8

Wie würde ich das Ergebnis eines rekursiven CTE in einer Abfrage verwenden, die ich mit Ecto ausführen möchte? Nehmen wir zum Beispiel an, ich habe eine Tabelle, Knoten, strukturiert wie folgt:

%Vor%

und ich habe auch eine andere Tabelle nodes_users wie folgt strukturiert:

%Vor%

Nun möchte ich alle Benutzer mit einem Knoten an oder über einem bestimmten Knoten erfassen, für ein Beispiel wählen wir den Knoten mit der ID 8.

Ich könnte die folgenden rekursiven verwenden, um dies zu tun:

%Vor%

Dies sollte Benutzer. * für die Benutzer w / id von 1, 2 und 4 zurückgeben.

Ich bin nicht sicher, wie ich dieselbe Abfrage mit ecto ausführen könnte, idealerweise in einer Weise, die eine kettenfähige Ausgabe zurückgibt. Ich verstehe, dass ich rohe SQL in meine Abfrage einfügen kann, indem ich das Fragmentmakro verwende, aber ich bin mir nicht sicher, wo das für diesen Zweck hinführen würde oder ob das sogar der am besten geeignete Weg wäre.

Hilfe und / oder Vorschläge wären willkommen!

    
Saba 08.09.2016, 05:20
quelle

1 Antwort

11

Ich konnte dies mit einem Fragment erreichen. Hier ist ein Beispiel für den Code, den ich verwendet habe. Ich werde wahrscheinlich diese Methode in eine gespeicherte Prozedur verschieben.

%Vor%     
Saba 08.09.2016 21:47
quelle