• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

437
Views
Supabase: Filtrar datos con unión y 'O' lógico

Estoy usando Supabase como base de datos e intento implementar una búsqueda de texto completo.

Mi configuración de ejemplo es bastante simple, tengo dos tablas:

elementos

 +----+-----------+-----------------+ | id | name | manufacturer_id | +----+-----------+-----------------+ | 1 | Notebook | 1 | +----+-----------+-----------------+ | 2 | Mouse | 2 | +----+-----------+-----------------+

fabricantes

 +----+-----------+ | id | name | +----+-----------+ | 1 | Apple | +----+-----------+ | 2 | Microsoft | +----+-----------+

Mi objetivo: buscar nombres de artículos o nombres de fabricantes y recibir siempre los items respectivos. La búsqueda de 'Apple' devolvería todos los artículos cuyo nombre de fabricante contenga esta frase. La búsqueda de 'Notebook' devolvería todos los elementos con este nombre.

( Simplifiqué este ejemplo usando coincidencias exactas porque este no es el problema con el que estoy atascado ).

Mi enfoque actual es el siguiente:

 let keyword = 'Apple'; supabase .from('items') .select('*, manufacturers!inner(*)') .or(`name.eq.${term}`) .or(`name.eq.${term}`, { foreignTable: 'manufacturers' })

Aunque esta consulta no devuelve nada.

Si .or('name.eq.${term}') devuelve el elemento correcto. Lo mismo si elimino el segundo .or() y uso un nombre de elemento como mi palabra clave.

Simplemente no puedo encontrar una manera de combinar dos operadores OR. También probé múltiples consultas de filter() pero no tuve éxito.

EDITAR: La sintaxis SQL (de trabajo) sería la siguiente:

 SELECT * FROM items JOIN manufacturers ON items.manufacturer_id = manufacturers.id WHERE items.name = 'Apple' OR manufacturers.name = 'Apple'

¿Alguien tiene un enfoque sobre cómo hacer eso con el SDK de JavaScript de Supabase? ¡Gracias de antemano!

almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No puede O combinar una condición de tabla externa ( manufacturers ) con una condición de tabla principal ( items ) directamente a través del JS SDK.

(Más detalles sobre por qué aquí )

Sin embargo, puede crear una función que envuelva su consulta y usar rpc para obtenerla:

https://supabase.com/docs/reference/javascript/rpc

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error