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

SQL查询需求:找出子节点数量少于2的user_id

查询子节点数量少于2的user_id SQL语句

表结构

iduser_idparent_idclub
11club1
221club1
331club1
442club1
552club1
663club1
773club1
884club1
994club1
10105club1
11115club1
12126club1
13136club1
14147club1
15157club1

需求说明

需要查询子节点数量少于2的user_id。根据表中数据,user_id为1、2、3、4、5、6、7的节点均拥有2个子节点,因此查询结果应返回8、9、10、11、12、13、14、15。

解决方案

方法一:自连接统计子节点数

通过自连接关联父节点与子节点,统计每个user_id的子节点数量,再筛选出数量少于2的:

SELECT u.user_id
FROM your_table u
LEFT JOIN your_table c ON u.user_id = c.parent_id
GROUP BY u.user_id
HAVING COUNT(c.user_id) < 2;

逻辑说明:

  • 用LEFT JOIN确保所有user_id都被包含,即使没有子节点
  • COUNT(c.user_id)统计每个父节点对应的子节点数量
  • HAVING子句过滤出子节点数小于2的user_id

方法二:排除拥有2个及以上子节点的父节点

先找出所有拥有2个及以上子节点的parent_id,再查询不在该集合中的user_id:

SELECT user_id
FROM your_table
WHERE user_id NOT IN (
    SELECT parent_id
    FROM your_table
    WHERE parent_id IS NOT NULL
    GROUP BY parent_id
    HAVING COUNT(*) >= 2
);

逻辑说明:

  • 子查询筛选出所有有2个及以上子节点的父节点
  • 外层查询排除这些父节点,剩下的就是子节点数少于2的user_id
  • 添加parent_id IS NOT NULL避免空值干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 11:25:26