mysql,通过一个tg_id等于6692011484,查找pid等于6692011484的下级tg_id,输出tg_id和level 1 ,查找pid的pid等于6692011484的下级tg_id,输出tg_id和level 2,查找pid的pid的pid等于6692011484的下级tg_id,输出tg_id和level 3,sql语句怎么写
WITH RECURSIVE user_hierarchy AS (
-- 基础查询,包含起始用户(tg_id为6692011484)及其直接上级(如果存在的话)
SELECT tg_id, pid, 1 AS level
FROM wa_users
WHERE tg_id = 6692011484 OR pid = 6692011484
UNION ALL
-- 递归查询,查找每个用户的上级用户(即pid对应的用户)
SELECT u.tg_id, u.pid, uh.level + 1 AS level
FROM wa_users u
JOIN user_hierarchy uh ON u.tg_id = uh.pid
)
-- 选择最终需要的数据,即pid等于给定值的用户及其层级
SELECT tg_id, pid, level
FROM user_hierarchy
WHERE pid = 6692011484;