Julien
07/25/2022, 8:59 PMts
return this.supabaseService.supabase
.from('playground')
.select(`
*,
playground_contact_person(
person
),
playground_contact_organization(
organization
)
`)
.or(`creative_organization.eq.${this.userService.userOrganizationId}`)
.or(`person.eq.${this.userService.userProfile.id}`, { foreignTable: "playground_contact_person"})
.or(`organization.eq.${this.userService.userOrganizationId}`, { foreignTable: "playground_contact_organization"})
But this doesn't give the expected result.
I suppose that I'm doing a bad joining but also I think that I should only have one ``or`` statement? But if I should have only one ``or`` statement, how can I filter on multiple foreign table?Needle
07/25/2022, 8:59 PMgaryaustin
07/25/2022, 9:03 PMgaryaustin
07/25/2022, 9:08 PMJulien
07/25/2022, 9:12 PMJulien
07/25/2022, 9:12 PMJulien
07/25/2022, 11:04 PMpostgresql
create or replace function get_playgrounds(orga_id int8, perso_id int8)
returns SETOF playground
language plpgsql
security INVOKER
as $$
BEGIN
return query
SELECT *
FROM playground
WHERE creative_organization_id=orga_id
UNION
SELECT playground.*
FROM playground_contact_organization
INNER JOIN playground
ON playground_contact_organization.playground_id=playground.id
WHERE organization_id=orga_id
UNION
SELECT playground.*
FROM playground_contact_person
INNER JOIN playground
ON playground_contact_person.playground_id=playground.id
WHERE person_id=perso_id;
END;
$$Julien
07/25/2022, 11:04 PMNeedle
07/25/2022, 11:06 PM