You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 06:03:31