Removed useless joins
This commit is contained in:
@@ -768,8 +768,7 @@ namespace lms::db
|
|||||||
|
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
oss << "SELECT a from artist a"
|
oss << "SELECT a from artist a"
|
||||||
" INNER JOIN track_artist_link t_a_l ON a.id = t_a_l.artist_id"
|
" INNER JOIN track_artist_link t_a_l ON a.id = t_a_l.artist_id";
|
||||||
" INNER JOIN track t ON t.id = t_a_l.track_id";
|
|
||||||
|
|
||||||
if (!linkTypes.empty())
|
if (!linkTypes.empty())
|
||||||
{
|
{
|
||||||
@@ -780,6 +779,7 @@ namespace lms::db
|
|||||||
{
|
{
|
||||||
if (!first)
|
if (!first)
|
||||||
oss << ", ";
|
oss << ", ";
|
||||||
|
|
||||||
oss << "?";
|
oss << "?";
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
@@ -790,7 +790,7 @@ namespace lms::db
|
|||||||
for (TrackArtistLinkType type : linkTypes)
|
for (TrackArtistLinkType type : linkTypes)
|
||||||
query.bind(type);
|
query.bind(type);
|
||||||
|
|
||||||
query.where("t.id = ?").bind(getId());
|
query.where("t_a_l.track_id = ?").bind(getId());
|
||||||
query.groupBy("t_a_l.artist_id");
|
query.groupBy("t_a_l.artist_id");
|
||||||
query.orderBy("t_a_l.id");
|
query.orderBy("t_a_l.id");
|
||||||
|
|
||||||
@@ -802,30 +802,30 @@ namespace lms::db
|
|||||||
assert(self());
|
assert(self());
|
||||||
assert(session());
|
assert(session());
|
||||||
|
|
||||||
std::ostringstream oss;
|
auto query{ session()->query<ArtistId>("SELECT t_a_l.artist_id FROM track_artist_link t_a_l") };
|
||||||
oss << "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())
|
if (!linkTypes.empty())
|
||||||
{
|
{
|
||||||
oss << " AND t_a_l.type IN (";
|
std::ostringstream oss;
|
||||||
|
oss << "t_a_l.type IN (";
|
||||||
|
|
||||||
bool first{ true };
|
bool first{ true };
|
||||||
for ([[maybe_unused]] TrackArtistLinkType type : linkTypes)
|
for ([[maybe_unused]] TrackArtistLinkType type : linkTypes)
|
||||||
{
|
{
|
||||||
if (!first)
|
if (!first)
|
||||||
oss << ", ";
|
oss << ", ";
|
||||||
|
|
||||||
oss << "?";
|
oss << "?";
|
||||||
first = false;
|
first = false;
|
||||||
}
|
}
|
||||||
oss << ")";
|
oss << ")";
|
||||||
|
|
||||||
|
query.where(oss.str());
|
||||||
|
for (TrackArtistLinkType type : linkTypes)
|
||||||
|
query.bind(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto query{ session()->query<ArtistId>(oss.str()) };
|
query.where("t_a_l.track_id = ?").bind(getId());
|
||||||
for (TrackArtistLinkType type : linkTypes)
|
|
||||||
query.bind(type);
|
|
||||||
|
|
||||||
query.where("t.id = ?").bind(getId());
|
|
||||||
query.groupBy("t_a_l.artist_id");
|
query.groupBy("t_a_l.artist_id");
|
||||||
query.orderBy("t_a_l.id");
|
query.orderBy("t_a_l.id");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user