From f7fac19a5c165c6cc1abde30de25aedbe2cee7d6 Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 17 Apr 2024 18:37:44 +0200 Subject: [PATCH] Simplified queries --- src/libs/database/impl/Track.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/libs/database/impl/Track.cpp b/src/libs/database/impl/Track.cpp index 1ee75fb4..f2552dbb 100644 --- a/src/libs/database/impl/Track.cpp +++ b/src/libs/database/impl/Track.cpp @@ -296,8 +296,9 @@ namespace lms::db assert(session()); const auto query{ session()->query - ("SELECT DISTINCT c.id FROM cluster c INNER JOIN track_cluster t_c ON t_c.cluster_id = c.id INNER JOIN track t ON t.id = t_c.track_id") - .where("t.id = ?").bind(getId()) }; + ("SELECT t_c.cluster_id FROM track_cluster t_c") + .where("t_c.track_id = ?").bind(getId()) + .groupBy("t_c.cluster_id") }; return utils::fetchQueryResults(query); } @@ -444,8 +445,7 @@ namespace lms::db std::ostringstream oss; oss << - "SELECT DISTINCT a.id from artist a" - " INNER JOIN track_artist_link t_a_l ON a.id = t_a_l.artist_id" + "SELECT t_a_l.artist_id FROM track_artist_link t_a_l" " INNER JOIN track t ON t.id = t_a_l.track_id"; if (!linkTypes.empty()) @@ -468,6 +468,7 @@ namespace lms::db query.bind(type); query.where("t.id = ?").bind(getId()); + query.groupBy("t_a_l.artist_id"); return utils::fetchQueryResults(query); }