Flutter中Supabase自关联查询结果方向错误求助
解决Supabase自关联消息引用查询方向反向问题
问题分析
你当前的查询默认获取的是引用当前消息的子消息(反向关联),但需求是获取当前消息引用的父消息,因此关联方向完全相反。
正确查询写法
Supabase默认生成的外键约束名格式为表名_外键字段名_fkey,这里对应的约束名是chat_messages_quoted_message_id_fkey。通过指定该约束名,即可修正关联方向:
final result = await Supabase.instance.client.from('chat_messages') .select('*, quoted_message:chat_messages!chat_messages_quoted_message_id_fkey(*)');
验证结果
执行上述查询后,会得到你预期的结构:
- id为
123的消息:quoted_message为空数组 - id为
456的消息:quoted_message中嵌套id为123的被引用消息
确认外键约束名(可选)
如果不确定约束名,可以在Supabase控制台的chat_messages表结构中查看,或执行以下SQL查询获取:
SELECT constraint_name FROM information_schema.key_column_usage WHERE table_name = 'chat_messages' AND column_name = 'quoted_message_id';
内容的提问来源于stack exchange,提问作者Apri
相关产品推荐
相关产品推荐

