final data = await supabase
.from('messages')
.select('*, users!inner(*)')
.eq('users.username', 'Jane');
有时您需要对同一个外部表进行两次查询。在这种情况下,您可以使用连接列的名称来标识您打算使用的连接。
为了方便起见,您还可以为每个列提供一个别名。例如,如果我们有一个产品商店,并且我们想同时获取供应商和购买者(都在 users 表中)的信息:
final data = await supabase
.from('messages')
.select('*, users!inner(*)')
.eq('users.username', 'Jane');
如果您想根据子表的值来筛选一个表,可以使用 !inner()
函数。例如,如果您想选择所有属于用户名为 “Jane” 的用户的消息表中的行:
final res = await supabase.from('cities').select(
'name',
const FetchOptions(
count: CountOption.exact,
),
);
final count = res.count;
final data = await supabase
.from('users')
.select('''
id, name,
address->street
''')
.eq('address->postcode', 90210);
如果你有一个JSONB列内的数据,你可以对数据值应用选择
和查询过滤器到数据值。Postgres提供了一个
操作数
用于查询JSON数据。还可以看到
PostgREST docs 了解更多细节。
final data = await supabase
.from('users')
.select()
.csv();
默认情况下,数据以JSON格式返回,但你也可以要求以逗号分隔值的形式返回。