sql >> Databáze >  >> RDS >> PostgreSQL

Použití rekurzivního CTE s Ecto

Podařilo se mi to provést pomocí fragmentu. Zde je příklad kódu, který jsem použil. Pravděpodobně tuto metodu přesunu do uložené procedury.

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
)



  1. Chyba při použití shody vzorů, která není podobná žádné v PostgreSQL

  2. Kontrola stavu databázových poštovních front na serveru SQL Server (T-SQL)

  3. Může SQL Server odeslat webový požadavek?

  4. Použijte parametr ve funkci předané funkci google.setOnLoadCallback();