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

如何编写SQL查询同表中Sponser id等于另一用户referral id的用户

解决方案

你可以用自连接或者EXISTS子查询实现该需求,请将下述语句中的users替换为你实际的表名,语句中字段对应你的表结构:SID为Sponserid(推荐人ID),RID为referralid(被推荐人关联的上级推荐ID)。


场景1:查询所有有下级用户的推荐人记录(即该用户的SID等于其他用户的RID)

自连接写法

SELECT DISTINCT u1.*
FROM users u1
INNER JOIN users u2 ON u1.SID = u2.RID;

这里加DISTINCT是为了避免一个推荐人有多个下级时,查询结果出现重复的推荐人记录,如果你不需要去重可以去掉该关键字。

EXISTS子查询写法

SELECT *
FROM users u1
WHERE EXISTS (
    SELECT 1 FROM users u2 WHERE u2.RID = u1.SID
);

这个写法在数据量较大的场景下性能通常优于自连接。


场景2:查询所有有上级推荐人的用户记录(即该用户的RID等于其他用户的SID)

SELECT u1.*
FROM users u1
INNER JOIN users u2 ON u1.RID = u2.SID;

用你的示例表数据执行该语句的话,会返回ID为2到13的所有记录,因为这些用户的RID都对应了另一个用户的SID,只有ID为1的hsn用户的RID为Root不存在对应SID,所以不会返回。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 06:45:02