0

我试图弄清楚如何在 supabase 中实现查询:

架构

CREATE TABLE cars 
(
    id SERIAL PRIMARY KEY,
    brand TEXT
);

CREATE TABLE stores 
(
    id SERIAL PRIMARY KEY,
    car INT REFERENCES car(id),
    name TEXT
);

我想获得所有销售品牌“x”汽车的商店

在 Supbase 中,我可以像这样过滤:

let { data: stores } = await supabase
  .from('stores')
  .select("*")
  .eq('name', 'Ford car shop')


// Returns
{
  id: 123456,
  car:"Ford",
  name:"Ford car shop"
}

或像这样加入:

let { data: stores } = await supabase
  .from('stores')
  .select(`
    *,
    cars (
      brand
    )
  `)
  .eq('name', 'Ford car shop')

// Returns
{
  id: 123456,
  car:"Ford",
  cars: {
     id: 654321,
     brand: "Ford"
  }
  name:"Ford car shop"
}

但是如何使用 supbase sdk 按他们携带的汽车品牌过滤商店?

4

2 回答 2

0

编辑: Supabase 最近添加了这个功能。新接受的答案如下。

我做了一些更多的研究,发现这目前是不可能的。但是,它似乎已经实现,并将进入下一个 Supabase 版本。

一个临时解决方案是使用视图然后查询它们。

CREATE VIEW stores_expanded AS
SELECT
  stores.id,
  stores.name,
  cars.brand
FROM
  stores
  LEFT JOIN cars
ON
  stores.car = cars.id;
let { data: stores } = await supabase
  .from('stores')
  .select("*")
  .eq('brand', 'x')
于 2021-10-21T16:30:21.587 回答
0

您可以使用内置的 postgrest api supabase 为您提供此信息。例如:

/projects?select=*,clients!inner(*)&clients.id=eq.12

这还没有添加到 supbase 客户端。

补丁显示在这里:https ://github.com/PostgREST/postgrest/releases/tag/v9.0.0

于 2021-12-01T19:00:27.427 回答