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

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

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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