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

如何用Supabase查询当前用户未关注的所有用户?

获取当前用户未关注的全部用户

数据表结构

  • Users表:id(主键)、firstName、lastName、userName、email
  • Followers表:user(外键关联Users.id)、following(外键关联Users.id)

你当前的查询语句是获取已关注的用户,要获取未关注的用户,可以用以下两种方法实现:

方法1:使用NOT IN子查询

let { data: nonFollowedUsers, error } = await supabase
  .from("Users")
  .select("id, firstName, lastName, userName, email")
  .neq("id", user.id) // 排除当前用户自身
  .not("id", "in", () => 
    supabase.from("Followers").select("following").eq("user", user.id)
  );

方法2:左连接筛选无匹配记录

let { data: nonFollowedUsers, error } = await supabase
  .from("Users")
  .select("*, followers!followers_following_fkey(following)")
  .neq("id", user.id)
  .is("followers.following", null);

关键说明

  • 两种方法都加入了.neq("id", user.id)来排除当前用户,避免把自己显示在未关注列表里
  • 方法1通过子查询拿到当前用户已关注的所有用户ID,再用NOT IN排除这些用户
  • 方法2通过左连接Followers表,筛选出没有对应关注关系的用户(即关联的followers记录为空的项)

内容的提问来源于stack exchange,提问作者falcon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 17:32:09