मैं इसे एक टुकड़े का उपयोग करके पूरा करने में सक्षम था। मेरे द्वारा उपयोग किए गए कोड का एक उदाहरण यहां दिया गया है। मैं शायद इस विधि को एक संग्रहीत कार्यविधि में ले जाऊँगा।
Repo.all(MyProj.User,
from u in MyProj.User,
join: un in MyProj.UserNode, on: u.id == un.user_id,
join: nt in fragment("""
(
WITH RECURSIVE node_tree AS (
SELECT *
FROM nodes
WHERE nodes.id = ?
UNION ALL
SELECT n.*
FROM nodes n
INNER JOIN node_tree nt ON nt.parent_id == n.id
)
) SELECT * FROM node_tree
""", ^node_id), on: un.node_id == nt.id
)