Skip to content

Commit 21fc56c

Browse files
authored
Merge pull request #11952 from nanaya/beatmapset-pack-query
Simplify beatmapset pack tags query
2 parents 8568550 + 86e78db commit 21fc56c

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

app/Models/Beatmapset.php

+10-13
Original file line numberDiff line numberDiff line change
@@ -330,21 +330,18 @@ public function scopeNeverQualified($query)
330330

331331
public function scopeWithPackTags(Builder $query): Builder
332332
{
333-
$idColumn = $this->qualifyColumn('beatmapset_id');
334-
$packTagColumn = (new BeatmapPack())->qualifyColumn('tag');
335-
$packItemBeatmapsetIdColumn = (new BeatmapPackItem())->qualifyColumn('beatmapset_id');
336333
$packQuery = BeatmapPack
337-
::selectRaw("GROUP_CONCAT({$packTagColumn} SEPARATOR ',')")
338-
->default()
339-
->whereRelation(
334+
::default()
335+
->whereHas(
340336
'items',
341-
DB::raw($packItemBeatmapsetIdColumn),
342-
DB::raw($idColumn),
343-
)->toRawSql();
344-
345-
return $query
346-
->select('*')
347-
->selectRaw("({$packQuery}) as pack_tags");
337+
fn ($q) => $q->whereColumn(
338+
$q->qualifyColumn('beatmapset_id'),
339+
$this->qualifyColumn('beatmapset_id')
340+
),
341+
);
342+
$packQuery->selectRaw("GROUP_CONCAT({$packQuery->qualifyColumn('tag')} SEPARATOR ',')");
343+
344+
return $query->addSelect(['pack_tags' => $packQuery]);
348345
}
349346

350347
public function scopeWithStates($query, $states)

0 commit comments

Comments
 (0)