我有这个user_id,它可以作为站和类型表的FK。
数据定义:
create table
public.types (
id uuid not null default uuid_generate_v4 (),
name text not null,
price numeric(10, 2) not null,
user_id uuid not null,
constraint types_pkey primary key (id),
constraint types_user_id_fkey foreign key (user_id) references profiles (id) on update cascade on delete restrict
) tablespace pg_default;
INSERT INTO types (id, name, price, user_id)
VALUES
('b6222d4b-5322-4b52-b80a-bb93759d2f6d', 'Type 1', 50, 'd5f71d08-abcd-45dd-9fb3-98bead9acfd3'),
('8fcda75e-d75d-4e18-a143-aeeec08a1fb1', 'Type 2', 25, 'cf336746-351b-4b1f-890e-7c7716472fe2'),
(gen_random_uuid(), 'Type 1.2', 60, 'd5f71d08-abcd-45dd-9fb3-98bead9acfd3'),
(gen_random_uuid(), 'Type 1.3', 70, 'd5f71d08-abcd-45dd-9fb3-98bead9acfd3'),
(gen_random_uuid(), 'Type 1.4', 20, 'd5f71d08-abcd-45dd-9fb3-98bead9acfd3');
create table
public.station (
id uuid not null default gen_random_uuid (),
user_id uuid not null default auth.uid (),
station_name text not null,
address text null,
constraint station_pkey primary key (id),
constraint station_user_id_key unique (user_id),
constraint station_user_id_fkey foreign key (user_id) references profiles (id) on update cascade on delete cascade
) tablespace pg_default;
INSERT INTO public.station (id, user_id, station_name, address)
VALUES
('6cf80bd7-633d-4bc3-8782-b69688e4c98d', '2521f577-9076-450d-b03d-1ab43b6354e6', 'Jennie', '12, Aaa, 7'),
('1f079d4b-492f-438a-a842-292ce8e954a1', 'd5f71d08-abcd-45dd-9fb3-98bead9acfd3', 'My Station', '12, Street name, 7');
字符串
我想要实现的是获取具有相同user_id
的所有水类型和站点。因此,如果我尝试检索属于user2
的types
和station
。我需要user2的数据,其中包含:
user2
'type2',20
'type 18', 300
'station2'
'Brazil`
型
我想应该是这样的,但是我怎么能在Supply.com中这样做呢?
select
station,
type
from
station
join station.user_id = type.user_id
where
station.user_id = '2d6c72a1-175c-4c08-823e-10e35c0d1d7f'
型
**UPDATE:**我无法查询的原因是types
和table
的引用都来自auth.users
,而不是PUBLIC
。因此,我现在已经将我的表更新为:
添加了profiles
表:
create table
public.profiles (
id uuid not null,
email text null,
full_name text null,
constraint profiles_pkey primary key (id),
constraint profiles_email_key unique (email),
constraint profiles_id_fkey foreign key (id) references auth.users (id) on delete cascade
) tablespace pg_default;
型
我也已经更新了types
和station
的FK。然而,我的问题仍然存在。我不知道如何检索共享同一user_id
的多个表的数据。
我试过这个:
const { data, error } = await supabase
.from('profiles')
.select(`
id,
station: user_id (station_name),
types(
*
)
`)
.eq('user_id',searchParams.id);
型
并尝试了这一点,但得到了一个错误,说:无法找到一个关系之间的'站'和'类型'在模式缓存错误。
const {data, error} = await supabase
.from('station')
.select(`
station_name,
user_id,
profiles(
id
),
type (
user_id
)
`)
.eq('user_id', searchParams.id)
型
我已经确定searchParams.id
不为null,并且确实检索到了正确的用户ID。
1条答案
按热度按时间yebdmbv41#
字符串
我需要做的实际上是替换
from
配置文件,因为它有station
和types
的user_id
引用