Trait diesel::pg::expression::extensions::OnlyDsl

source ·
pub trait OnlyDsl: Table {
    // Provided method
    fn only(self) -> Only<Self> { ... }
}
Expand description

The only method

This is only implemented for the Postgres backend. The ONLY clause is used to select only from one table and not any inherited ones.

Calling this function on a table (mytable.only()) will result in the SQL ONLY mytable. mytable.only() can be used just like any table in diesel since it implements Table.

Example:

let n_sers_in_main_table = users::table
    .only()
    .select(count(users::id))
    .first::<i64>(connection);

Selects the number of entries in the users table excluding any rows found in inherited tables.

It can also be used in inner joins:

users::table
    .inner_join(posts::table.only())
    .select((users::name, posts::title))
    .load::<(String, String)>(connection);

That query excludes any posts that reside in any inherited table.

Provided Methods§

source

fn only(self) -> Only<Self>

See the trait-level docs.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: Table> OnlyDsl for T