diff --git a/src/main.rs b/src/main.rs
index 56dd192028c32b3c0c13d392f83e2a0bf49a4e75..d8b16169700c9f00cd3d6894e57cd19d53ed1926 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -47,6 +47,9 @@ fn get_genre(db: MediaflixConnection, id: ParamUuid) -> QueryResult<Json<GenreWi
 fn list_titles(db: MediaflixConnection) -> QueryResult<Json<Vec<TitleDto>>> {
     use media_backend::schema::*;
     let titles = titles::table
+        .left_outer_join(title_episodes::table.on(title_episodes::episode_id.eq(titles::id)))
+        .filter(title_episodes::id.is_null())
+        .select(titles::all_columns)
         .load::<Title>(&db.0)?;
     Ok(Json(load_titles(&db.0, titles)?))
 }