File: /volume1/@appstore/SynologyPhotos/etc/sql/11.sql
CREATE OR REPLACE VIEW public.general_tag_timeline_view
AS
SELECT
U.id_item,
U.id_user,
U.item_type,
U.type as unit_type,
U.id as id_unit,
AGG_TAG.tags AS id_general_tag,
U.takentime
FROM unit as U left outer join (
SELECT unit.id, unit.id_user, array_agg(distinct(R.id_general_tag)) as tags
FROM unit left outer join many_unit_has_many_general_tag as R on unit.id = R.id_unit AND unit.id_user = R.id_user
GROUP BY unit.id, unit.id_user
) as AGG_TAG ON U.id = AGG_TAG.id AND U.id_user = AGG_TAG.id_user
WHERE U.is_major = 't';
CREATE OR REPLACE VIEW public.person_timeline_view
AS
SELECT
U.id_item,
U.id_user,
U.item_type,
U.type as unit_type,
U.id as id_unit,
AGG_PERSON.persons AS id_person,
U.takentime
FROM unit as U left outer join (
SELECT unit.id, unit.id_user, array_agg(DISTINCT(F.id_person)) as persons
FROM unit left outer join face as F on unit.id = F.id_unit AND unit.id_user = F.id_user
GROUP BY unit.id, unit.id_user
) as AGG_PERSON ON U.id = AGG_PERSON.id AND U.id_user = AGG_PERSON.id_user
WHERE U.is_major = 't';