sendou.ink/app/db/models/builds/recentBuilds.sql
2022-09-25 15:33:00 +03:00

59 lines
1.3 KiB
SQL

with "RecentBuild" as (
select
*
from
"Build"
order by
"updatedAt" desc
limit
3
), "BuildFiltered" as (
select
"id",
"title",
"description",
"modes",
"headGearSplId",
"clothesGearSplId",
"shoesGearSplId",
"updatedAt",
"ownerId"
from
"RecentBuild"
left join "BuildWeapon" on "BuildWeapon"."buildId" = "RecentBuild"."id"
group by
"RecentBuild"."id"
),
"BuildWithWeapon" as (
select
"BuildFiltered".*,
json_group_array("BuildWeapon"."weaponSplId") as "weapons"
from
"BuildFiltered"
left join "BuildWeapon" on "BuildWeapon"."buildId" = "BuildFiltered"."id"
group by
"BuildFiltered"."id"
)
select
"BuildWithWeapon".*,
"User"."discordId",
"User"."discordName",
"User"."discordDiscriminator",
json_group_array(
json_object(
'ability',
"BuildAbility"."ability",
'gearType',
"BuildAbility"."gearType",
'slotIndex',
"BuildAbility"."slotIndex"
)
) as "abilities"
from
"BuildWithWeapon"
left join "BuildAbility" on "BuildAbility"."buildId" = "BuildWithWeapon"."id"
left join "PlusTier" on "PlusTier"."userId" = "BuildWithWeapon"."ownerId"
left join "User" on "User"."id" = "BuildWithWeapon"."ownerId"
group by
"BuildWithWeapon"."id"