]> Some of my projects - localmylist.git/commitdiff
Account for file/ep relations in firstUnwatched* methods.
authorAPTX <marek321@gmail.com>
Sun, 21 Apr 2013 16:51:41 +0000 (18:51 +0200)
committerAPTX <marek321@gmail.com>
Sun, 21 Apr 2013 16:51:41 +0000 (18:51 +0200)
localmylist/database.cpp

index b5399ce6eb0bad9ee455030827e22fd6243a3962..aba24478300510abc58472489092129fd80f95fd 100644 (file)
@@ -96,7 +96,12 @@ OpenFileData Database::firstUnwatchedByExactTitle(const QString &title)
        "       WHERE f.my_watched IS NULL "
        "               AND lower(at.title) = lower(:title) "
        "               AND fl.path IS NOT NULL "
-       "               AND NOT EXISTS (SELECT 1 FROM file WHERE eid = e.eid AND my_watched IS NOT NULL LIMIT 1) "
+       "               AND NOT EXISTS ( "
+       "                       SELECT 1 FROM file WHERE eid = e.eid AND my_watched IS NOT NULL "
+       "                       UNION "
+       "                       SELECT 1 FROM file f "
+       "                               JOIN file_episode_rel fer ON fer.eid = e.eid AND f.fid = fer.fid "
+       "                               WHERE my_watched IS NOT NULL) "
        "ORDER BY epno ASC ");
        q.bindValue(":title", title);
 
@@ -121,8 +126,12 @@ OpenFileData Database::firstUnwatchedByTitle(const QString &title)
        "       WHERE f.my_watched IS NULL "
        "               AND at.title ILIKE :fuzzyTitle "
        "               AND fl.path IS NOT NULL "
-       "               AND NOT EXISTS (SELECT 1 FROM file WHERE eid = e.eid AND my_watched IS NOT NULL LIMIT 1) "
-       "GROUP BY f.fid, a.title_romaji, e.title_english, e.epno, fl.path, fl.host_id "
+       "                       AND NOT EXISTS ( "
+       "                       SELECT 1 FROM file WHERE eid = e.eid AND my_watched IS NOT NULL "
+       "                       UNION "
+       "                       SELECT 1 FROM file f "
+       "                               JOIN file_episode_rel fer ON fer.eid = e.eid AND f.fid = fer.fid "
+       "                               WHERE my_watched IS NOT NULL) "
        "ORDER BY epno ASC ");
        q.bindValue(":fuzzyTitle", "%" + title + "%");