Supabase,按外键行的列值过滤
Supabase, filter by column value of foreign key row
我想知道如何在 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”汽车的商店
在 Supabase 中我可以这样过滤:
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"
}
但是我如何使用 supabase sdk 按他们携带的汽车品牌过滤商店?
编辑:
Supabase 最近添加了此功能。新接受的答案如下。
我做了更多研究,发现 this is currently not possible。但是,它似乎已经实现并将进入下一个 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')
您可以使用内置的 postgrest api supabase 来获取此信息。例如:
/projects?select=*,clients!inner(*)&clients.id=eq.12
这还没有添加到 supabase 客户端。
补丁显示在这里:https://github.com/PostgREST/postgrest/releases/tag/v9.0.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”汽车的商店
在 Supabase 中我可以这样过滤:
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"
}
但是我如何使用 supabase sdk 按他们携带的汽车品牌过滤商店?
编辑: Supabase 最近添加了此功能。新接受的答案如下。
我做了更多研究,发现 this is currently not possible。但是,它似乎已经实现并将进入下一个 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')
您可以使用内置的 postgrest api supabase 来获取此信息。例如:
/projects?select=*,clients!inner(*)&clients.id=eq.12
这还没有添加到 supabase 客户端。
补丁显示在这里:https://github.com/PostgREST/postgrest/releases/tag/v9.0.0