logo
pub struct Select<E>where
    E: EntityTrait,
{ /* private fields */ }
Expand description

Defines a structure to perform select operations

Implementations

Perform a Select operation on a Model using a Statement

Return a Selector from Self that wraps a SelectModel

Get a selectable Model as a JsonValue for SQL JSON operations

use sea_orm::{entity::*, query::*, tests_cfg::cake, DeriveColumn, EnumIter};

#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)]
enum QueryAs {
    CakeName,
}

let res: Vec<String> = cake::Entity::find()
    .select_only()
    .column_as(cake::Column::Name, QueryAs::CakeName)
    .into_values::<_, QueryAs>()
    .all(&db)
    .await?;

assert_eq!(
    res,
    vec!["Chocolate Forest".to_owned(), "New York Cheese".to_owned()]
);

assert_eq!(
    db.into_transaction_log(),
    vec![Transaction::from_sql_and_values(
        DbBackend::Postgres,
        r#"SELECT "cake"."name" AS "cake_name" FROM "cake""#,
        vec![]
    )]
);
use sea_orm::{entity::*, query::*, tests_cfg::cake, DeriveColumn, EnumIter};

#[derive(Copy, Clone, Debug, EnumIter, DeriveColumn)]
enum QueryAs {
    CakeName,
    NumOfCakes,
}

let res: Vec<(String, i64)> = cake::Entity::find()
    .select_only()
    .column_as(cake::Column::Name, QueryAs::CakeName)
    .column_as(cake::Column::Id.count(), QueryAs::NumOfCakes)
    .group_by(cake::Column::Name)
    .into_values::<_, QueryAs>()
    .all(&db)
    .await?;

assert_eq!(res, vec![("Chocolate Forest".to_owned(), 2i64)]);

assert_eq!(
    db.into_transaction_log(),
    vec![Transaction::from_sql_and_values(
        DbBackend::Postgres,
        vec![
            r#"SELECT "cake"."name" AS "cake_name", COUNT("cake"."id") AS "num_of_cakes""#,
            r#"FROM "cake" GROUP BY "cake"."name""#,
        ]
        .join(" ")
        .as_str(),
        vec![]
    )]
);

Get one Model from the SELECT query

Get all Models from the SELECT query

Stream the results of a SELECT operation on a Model

Selects and Entity and returns it together with the Entity from Self

Makes a SELECT operation in conjunction to another relation

Left Join with a Related Entity.

Right Join with a Related Entity.

Inner Join with a Related Entity.

Join with an Entity Related to me.

Left Join with a Related Entity and select both Entity.

Left Join with a Related Entity and select the related Entity as a Vec

Left Join with a Linked Entity and select both Entity.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Select operation
Convert current type into a cursor
Formats the value using the given formatter. Read more
Select operation
Paginate the result of a select operation.
Perform a count on the paginated results
Add the query to perform a FILTER on
Add an AND WHERE expression Read more
Apply a where condition using the model’s primary key
Perform a check to determine table belongs to a Model through it’s name alias
Add the query to perform an ORDER BY operation
Add an order_by expression Read more
Add an order_by expression (ascending) Read more
Add an order_by expression (descending) Read more
Add the select SQL statement
Clear the selection list
Add a select column Read more
Add a select column with alias Read more
Add an offset expression Read more
Add a limit expression Read more
Add a group by column Read more
Add an AND HAVING expression Read more
Join via RelationDef.
Join via RelationDef but in reverse direction. Assume when there exist a relation A to B. You can reverse join B from A. Read more
Join via RelationDef with table alias.
Join via RelationDef with table alias but in reverse direction. Assume when there exist a relation A to B. You can reverse join B from A. Read more
Select lock
Select lock shared
Select lock exclusive
Constrain the QueryStatement to QueryStatementBuilder trait
Get a mutable ref to the query builder
Get an immutable ref to the query builder
Take ownership of the query builder
Build the query as Statement

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more