Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

320
Views
"Error no detectado: se encontró más de una relación" con la consulta del cliente de Supabase

Estoy creando una aplicación multiinquilino y me encuentro con un error después de agregar varias relaciones que apuntan a la misma tabla:

 Uncaught Error: More than one relationship was found for teams and users

Al realizar esta consulta:

 const data = await supabaseClient.from('organizations') .select(` *, teams( id, org_id, name, members:users( id, full_name, avatar_url ) ) `);

Tengo las siguientes estructuras de tabla (dejando algunos campos por brevedad):

 table users ( id uuid PK full_name text email text ) table organizations ( id uuid PK .... ) table organization_memberships ( id uuid PK organization_id uuid FK user_id uuid FK role ENUM ) table teams ( id uuid PK name text PK ) table team_memberships ( id uuid PK team_id uuid FK user_id uuid FK role ENUM ) table team_boards ( id uuid PK team_id uuid FK owner_id uuid FK )

Debajo del capó, Supabase usa PostREST para consultas. Y he descifrado del mensaje de error que la consulta es ambigua y no está seguro de qué relación(es) cumplir. No estoy seguro de cómo decirle a Supabase qué relación usar en esta consulta en particular para evitar este error.

Aquí está el error de consola más detallado de postREST:

 { hint: "By following the 'details' key, disambiguate the request by changing the url to /origin?select=relationship(*) or /origin?select=target!relationship(*)", message: 'More than one relationship was found for teams and users', details: [ { origin: 'public.teams', relationship: 'public.team_memberships[team_memberships_team_id_fkey][team_memberships_user_id_fkey]', cardinality: 'm2m', target: 'public.users' }, { origin: 'public.teams', relationship: 'public.team_boards[team_boards_team_id_fkey][team_boards_owner_id_fkey]', cardinality: 'm2m', target: 'public.users' } ] }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Profundizando un poco más en los documentos de PostgREST , resulta que lo que estaba buscando era el operador de desambiguación, ! .

La consulta de trabajo se ve así (tenga en cuenta que estamos desambiguando qué relación usar para satisfacer la consulta de los members ):

 const data = await supabaseClient.from('organizations') .select(` *, teams( id, org_id, name, members:users!team_memberships( id, full_name, avatar_url ) ) `);
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!