// Cargo.toml dependency: // diesel = {version = "2.0.0-rc.1", default-features = false, features = ["sqlite", "postgres", "mysql"]} use diesel::prelude::*; allow_tables_to_appear_in_same_query!( users, posts, ); joinable!(posts -> users(user_id)); table! { users(id) { id -> Integer, name -> Text, } } table! { posts(id) { id -> Integer, name -> Text, user_id -> Integer, published -> Bool, } } fn get_all_published_users( conn: &mut PgConnection ) -> QueryResult> { users::table //.inner_join(posts::table) .filter(posts::published.eq(true)) .select((users::id, users::name)) .load(conn) } fn main() {}