Skip to main content

Module cte

Module cte 

Source
Expand description

Common Table Expressions (CTEs) for SQL queries.

Provides support for WITH clauses including recursive CTEs.

§Example

use sqlmodel_query::{Cte, CteRef, select};

// Basic CTE
let active_users = Cte::new("active_users")
    .query(select!(User).filter(Expr::col("active").eq(true)));

// Query using the CTE
let query = select_from_cte(&active_users)
    .columns(&["name", "email"]);

// Recursive CTE for hierarchical data
let hierarchy = Cte::recursive("hierarchy")
    .columns(&["id", "name", "manager_id", "level"])
    .initial(
        select!(Employee)
            .filter(Expr::col("manager_id").is_null())
    )
    .recursive_term(|cte| {
        select!(Employee)
            .join_on("hierarchy", Expr::col("manager_id").eq(cte.col("id")))
    });

Structs§

Cte
A Common Table Expression (WITH clause).
CteRef
A reference to a CTE for use in expressions.
WithQuery
A query with one or more CTEs.