Replaced double left join with lateral join in scene affiliate SQL.
This commit is contained in:
parent
edb4be379f
commit
34348890ec
|
|
@ -194,14 +194,22 @@ export async function fetchScenesById(sceneIds, { reqUser, ...context } = {}) {
|
|||
'networks.name as network_name',
|
||||
'networks.type as network_type',
|
||||
'networks.has_logo as network_has_logo',
|
||||
knex.raw('row_to_json(coalesce(channel_affiliates, network_affiliates)) as affiliate'),
|
||||
knex.raw('row_to_json(affiliates) as affiliate'),
|
||||
)
|
||||
.whereIn('releases.id', sceneIds)
|
||||
.leftJoin('entities as channels', 'channels.id', 'releases.entity_id')
|
||||
.leftJoin('entities as networks', 'networks.id', 'channels.parent_id')
|
||||
.leftJoin('affiliates as channel_affiliates', 'channel_affiliates.entity_id', 'channels.id')
|
||||
.leftJoin('affiliates as network_affiliates', 'network_affiliates.entity_id', 'networks.id')
|
||||
.groupBy('channels.id', 'networks.id', 'channel_affiliates.id', 'network_affiliates.id'),
|
||||
// .leftJoin('affiliates as channel_affiliates', 'channel_affiliates.entity_id', 'channels.id')
|
||||
// .leftJoin('affiliates as network_affiliates', 'network_affiliates.entity_id', 'networks.id')
|
||||
.joinRaw(`
|
||||
left join lateral (
|
||||
select *
|
||||
from affiliates
|
||||
where affiliates.entity_id in (channels.id, networks.id)
|
||||
order by (affiliates.entity_id = channels.id) desc
|
||||
limit 1
|
||||
) affiliates ON TRUE
|
||||
`),
|
||||
studios: knex('releases')
|
||||
.whereIn('releases.id', sceneIds)
|
||||
.leftJoin('entities as studios', 'studios.id', 'releases.studio_id'),
|
||||
|
|
|
|||
Loading…
Reference in New Issue