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.name as network_name',
|
||||||
'networks.type as network_type',
|
'networks.type as network_type',
|
||||||
'networks.has_logo as network_has_logo',
|
'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)
|
.whereIn('releases.id', sceneIds)
|
||||||
.leftJoin('entities as channels', 'channels.id', 'releases.entity_id')
|
.leftJoin('entities as channels', 'channels.id', 'releases.entity_id')
|
||||||
.leftJoin('entities as networks', 'networks.id', 'channels.parent_id')
|
.leftJoin('entities as networks', 'networks.id', 'channels.parent_id')
|
||||||
.leftJoin('affiliates as channel_affiliates', 'channel_affiliates.entity_id', 'channels.id')
|
// .leftJoin('affiliates as channel_affiliates', 'channel_affiliates.entity_id', 'channels.id')
|
||||||
.leftJoin('affiliates as network_affiliates', 'network_affiliates.entity_id', 'networks.id')
|
// .leftJoin('affiliates as network_affiliates', 'network_affiliates.entity_id', 'networks.id')
|
||||||
.groupBy('channels.id', 'networks.id', 'channel_affiliates.id', 'network_affiliates.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')
|
studios: knex('releases')
|
||||||
.whereIn('releases.id', sceneIds)
|
.whereIn('releases.id', sceneIds)
|
||||||
.leftJoin('entities as studios', 'studios.id', 'releases.studio_id'),
|
.leftJoin('entities as studios', 'studios.id', 'releases.studio_id'),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue