在Supabase中查询反向关联字段:获取含所属国家信息的城市数据
解决方案:无需调整表结构,使用反向关联查询即可实现
你的现有表结构和关联关系完全没问题,不需要做任何调整。Supabase支持反向关联查询,直接从cities表查询时就能关联拉取所属countries表的完整数据,具体实现如下:
JavaScript 查询代码
如果希望关联字段使用默认表名countries作为键:
const { data, error } = await supabase .from('cities') .select(` id, name, countries ( id, name ) `)
如果要匹配你期望的country键名,可使用别名语法:
const { data, error } = await supabase .from('cities') .select(` id, name, country:countries ( id, name ) `)
原理说明
Supabase会自动识别cities表中country_id与countries表主键的外键关联关系,允许你在查询cities时直接嵌套查询关联的countries表数据。别名语法可以将返回的关联字段名从默认表名改为自定义名称,完全匹配你想要的返回格式。
预期返回结果
执行带别名的查询后,返回数据格式将与你要求的一致:
[ { "id": 1, "name": "City name", "country": { "id": 1, "name": "Country name 1" } }, { "id": 2, "name": "City name 2", "country": { "id": 2, "name": "Country name 2" } } ]
内容的提问来源于stack exchange,提问作者Bikrant
相关产品推荐
相关产品推荐

