文档章节

mysql 递归查询下级

素剑步青尘
 素剑步青尘
发布于 2018/10/09 21:24
字数 341
阅读 19
收藏 1
CREATE TABLE `ys_recommendation_code_user` (

`id` bigint NOT NULL AUTO_INCREMENT,

`parent_user_id` int NOT NULL COMMENT '推荐者的用户id',

`user_id` int NOT NULL COMMENT '用户id',

`gmt_create` datetime NOT NULL,

`gmt_modified` datetime NOT NULL,

PRIMARY KEY (`id`) ,

INDEX `idx_parent_user_id_user_id` (`parent_user_id`, `user_id`)

)

COMMENT='推荐码-用户关联表';

2.插入数据

insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('2','100','102','0000-00-00 00:00:00','0000-00-00 00:00:00');
insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('3','100','103','0000-00-00 00:00:00','0000-00-00 00:00:00');
insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('4','101','104','0000-00-00 00:00:00','0000-00-00 00:00:00');
insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('5','101','105','0000-00-00 00:00:00','0000-00-00 00:00:00');
insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('6','101','106','0000-00-00 00:00:00','0000-00-00 00:00:00');
insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('7','104','107','0000-00-00 00:00:00','0000-00-00 00:00:00');
insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('8','104','108','0000-00-00 00:00:00','0000-00-00 00:00:00');
insert into `ys_recommendation_code_user` (`id`, `parent_user_id`, `user_id`, `gmt_create`, `gmt_modified`) values('9','104','109','0000-00-00 00:00:00','0000-00-00 00:00:00');

3.查询

SELECT user_id FROM (
              SELECT t1.user_id,
              IF(FIND_IN_SET(parent_user_id, @pids) > 0, @pids := CONCAT(@pids, ',', user_id), 0) AS ischild
              FROM (
                   SELECT user_id,parent_user_id FROM ys_recommendation_code_user t ORDER BY parent_user_id, user_id
                  ) t1,
                  (SELECT @pids := 这里是需要查询的user_id) t2
             ) t3 WHERE ischild != 0

4.查询结果 user_id = 100

© 著作权归作者所有

共有 人打赏支持
素剑步青尘
粉丝 24
博文 62
码字总数 20476
作品 1
杭州
架构师
私信 提问
mysql 数据库设计 上下级问题

现在有个应用商家可以添加下级,下级又可以添加下级 相当于无限级. 商家下面有后台的操作员,有面向市场的用户,设备等 需求是 当前操作的商家能够看到他下级 下下级 下下下级....的数据 现在的...

命名一直是个纠结的问题
2013/11/29
2.1K
9
无限级用户推荐关系,是否有更有效率的实现方式?

如:A用户->(A2用户,B2用户...)->(A3用户,B3用户...)->(A4用户,B4用户,C4用户...)... 如上这种无限级推荐关系,使用parent_id关联,但在查询时使用递归效率不高,也不方便,如A用户需要查...

风断星灭
2016/03/04
268
4
Linux之DNS基本概念和资源记录类型

DNS:Domian Name Service 名称解析,Name Resolving (背后有查询过程,数据库) FQDN<-->IP 172.16.0.1 www.magedu.com nsswitch:为名称解析机制提供平台,本身不提供名称解析的功能 /etc/nss...

有些服务器
2015/07/17
0
0
oracle sql 查询 请教个问题

我现在的结果是这样的: select tmp.org_id from tmp (事实 是不可能这么简单的,我这里是10多张表查出来组合的临时表,) ,我现在就是需要对结果 tmp.orgid 进行过滤 一个 sql 不知道 如何进...

首席安全砖家
2013/08/23
194
7
SQL的递归查找操作

在关系型数据库中,经常会设计一种上级下级关系数据,即数据中保存这上级的ID。如下所示: 数据库一般设计为id和superior_id(父级id)的设计方式,举例如下,数据中的结构数据如下所示: 此...

郁极风
2016/08/12
57
2

没有更多内容

加载失败,请刷新页面

加载更多

【大数据分析常用算法】9、马尔科夫模型

简介 这一章节我们讲解马尔科夫模型。给定一组随机变量(如顾客最近的交易日期),马尔科夫模型只根据前一个状态(前一个最近交易日期)的分部指示该变量最近的分布。 1、马尔科夫链基本原理...

Areya
11分钟前
0
0
vue自定义属性

vue自定义属性如果是固定的非写死的,可以直接写,例如 <button vkshop-event-name="buyNow" vkshop-event-type="click"></button> 如果是动态属性,需要加冒号 : <button :vkshop-event-na......

litCabbage
14分钟前
0
0
Java 线程池的使用好处

使用线程池的好处: 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.如不使用线程池,有可能造成系统创建大量线程而导致消耗完系统内存 以下是Java自带的几种线程池: 1、newFixedT...

飓风2000
17分钟前
0
0
Ubuntu 16.04安装Java 8

1 Java 8 下载地址 http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk8-downloads-2133151-zhs.html 2 以root用户登录将下载的jdk-8u92-linux-x64.tar.gz文件放到/temp目录下......

群星纪元
28分钟前
0
0
我们总结了每个技术团队都会遇到的 4 个难题

阿里巴巴 2019 年实习生校园招聘已经启动,为此,我们整理了一篇《每个技术团队都会遇到的4个难题》,帮助即将从校园进入公司实习的后端程序员,以实践的视角,看看一个后端技术团队会遇到的...

阿里云云栖社区
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部