当前位置: 首页 > news >正文

常德营销型网站建设端口扫描站长工具

常德营销型网站建设,端口扫描站长工具,能建商城,怎么注册公司域名邮箱背景: 项目升级,引入MySQL数据库,之前一直用的是Oracle数据,在做用户登录单位维护的时候,需要返回该用户所属单位下的所有子单位。下边是模拟项目数据实践的过程。 数据准备: 准备一张单位表&#xff0c…

背景:

项目升级,引入MySQL数据库,之前一直用的是Oracle数据,在做用户登录单位维护的时候,需要返回该用户所属单位下的所有子单位。下边是模拟项目数据实践的过程。

数据准备:

准备一张单位表,里面存储下级单位以及上级单位的对应关系数据。

-- 创建单位表
CREATE TABLE UNITS (ID INT PRIMARY KEY,NAME VARCHAR(255),PARENT_ID INT
);-- 插入数据
INSERT INTO UNITS (ID, NAME, PARENT_ID)
VALUES(1500, '1500单位', NULL),(1501, '1501单位', 1500),(15011, '15011单位', 1501),(15012, '15012单位', 1501),(150121, '150121单位', 15012),(1600, '1600单位', NULL),(1601, '1601单位', 1600),(1602, '1602单位', 1600);

实践:

1、Oracle做法

主要使用START WITHCONNECT BY PRIOR完成递归查询,多用于层次查询。
START WITH:表示递归的起始记录。
CONNECT BY PRIOR:表示递归时与当前记录的关联关系,其中PRIOR的位置是是可以变动的,位置的不同,其查询结果也不同。

所有顶级单位向下查询属于该单位的所有的子单位:
# 使用START WITH和CONNECT BY PRIOR完成递归查询,以所有PARENT_ID IS NULL的记录为起始记录,关联表中的ID字段,查询所有属于下级单位
SELECT * FROM UNITS U CONNECT BY PRIOR ID = PARENT_ID START WITH PARENT_ID IS NULL;ID    |NAME    |PARENT_ID|
------|--------|---------|1500|1500单位  |         |1501|1501单位  |     1500|15011|15011单位 |     1501|15012|15012单位 |     1501|
150121|150121单位|    15012|1600|1600单位  |         |1601|1601单位  |     1600|1602|1602单位  |     1600|
根据指定单位向下查询属于该单位的所有的子单位:
# 指定查询1600单位下的所有的子单位,注意向下查找,PRIOR的位置在ID的前边
SELECT * FROM UNITS U CONNECT BY PRIOR ID = PARENT_ID START WITH PARENT_ID = 1600;ID  |NAME  |PARENT_ID|
----|------|---------|
1601|1601单位|     1600|
1602|1602单位|     1600|
根据子单位向上查询属于该单位的所有的上级单位,如果不要包含指定的子单位,那就在结果集中过滤掉即可:
# 查询1501的所有的上级单位,注意向上查找,PRIOR的位置在PARENT_ID的前边
SELECT * FROM UNITS U CONNECT BY ID = PRIOR PARENT_ID START WITH ID = 1501;ID  |NAME  |PARENT_ID|
----|------|---------|
1501|1501单位|     1500|
1500|1500单位|         |

2、Mysql做法

主要是使用关键WITH RECURSIVE 进行递归查询,不过要求,Mysql的版本需要在8.0以上。

所有顶级单位向下查询属于该单位的所有的子单位:
# WITH RECURSIVE是MySQL8支持的递归关键字。
WITH RECURSIVE UNITS_PARENT (ID ,NAME, PARENT_ID) AS (# 递归体的开始,所有的父级下子单位,根据这个语句产生递归体的初始行,并将这些初始行数据插入到UNITS_PARENT临时表中。SELECT U.ID, U.NAME, U.PARENT_ID FROM UNITS AS U WHERE U.PARENT_ID IS NULL UNION ALL # 递归的开始,将根据UNITS_PARENT表中的初始行数据和UNITS表进行真正的递归查询,直到不在产生新的数据行为止,也就是递归结束,并将查询的数据插入到UNITS_PARENT临时表中。# 注意ON的条件:UNITS_PARENT中初始行数据存的是所有的上级单位信息,向下查询,那就是查询所有的PARENT_ID等于初始行ID的数据。SELECT U.ID, U.NAME, U.PARENT_ID FROM UNITS_PARENT AS UP JOIN UNITS AS U ON UP.ID = U.PARENT_ID
)
# 从UNITS_PARENT临时表查询出所有的符合要求的数据
SELECT ID ,NAME, PARENT_ID FROM UNITS_PARENT ORDER BY ID;#|ID    |NAME    |PARENT_ID|
-+------+--------+---------+
1|  1500|1500单位  |         |
2|  1501|1501单位  |     1500|
3|  1600|1600单位  |         |
4|  1601|1601单位  |     1600|
5|  1602|1602单位  |     1600|
6| 15011|15011单位 |     1501|
7| 15012|15012单位 |     1501|
8|150121|150121单位|    15012|
根据指定单位向下查询属于该单位的所有的子单位:
# WITH RECURSIVE是MySQL8支持的递归关键字。
WITH RECURSIVE UNITS_PARENT (ID ,NAME, PARENT_ID) AS (# 递归体的开始,1600下子单位,根据这个语句产生递归体的初始行,并将这些初始行数据插入到UNITS_PARENT临时表中。SELECT U.ID, U.NAME, U.PARENT_ID FROM UNITS AS U WHERE U.PARENT_ID = 1600 UNION ALL # 递归的开始,将根据UNITS_PARENT表中的初始行数据和UNITS表进行真正的递归查询,直到不在产生新的数据行为止,也就是递归结束,并将查询的数据插入到UNITS_PARENT临时表中。# 注意ON的条件:UNITS_PARENT中初始行数据存的是1600单位信息,向下查询,那就是查询所有的PARENT_ID等于初始行1600 ID的数据。SELECT U.ID, U.NAME, U.PARENT_ID FROM UNITS_PARENT AS UP JOIN UNITS AS U ON UP.ID = U.PARENT_ID
)
# 从UNITS_PARENT临时表查询出所有的符合要求的数据
SELECT ID ,NAME, PARENT_ID FROM UNITS_PARENT ORDER BY ID;#|ID  |NAME  |PARENT_ID|
-+----+------+---------+
1|1601|1601单位|     1600|
2|1602|1602单位|     1600|
根据子单位向上查询属于该单位的所有的上级单位,如果不要包含指定的子单位,那就在结果集中过滤掉即可:
# WITH RECURSIVE是MySQL8支持的递归关键字。
WITH RECURSIVE UNITS_PARENT (ID ,NAME, PARENT_ID) AS (# 递归体的开始,查询1501的所有上级单位,根据这个语句产生递归体的初始行,并将这些初始行数据插入到UNITS_PARENT临时表中。SELECT U.ID, U.NAME, U.PARENT_ID FROM UNITS AS U WHERE U.ID = 1501UNION ALL # 递归的开始,将根据UNITS_PARENT表中的初始行数据和UNITS表进行真正的递归查询,直到不在产生新的数据行为止,也就是递归结束,并将查询的数据插入到UNITS_PARENT临时表中。# 注意ON的条件:UNITS_PARENT中初始行数据存的是1501单位信息,向上查询,那就是查询所有ID等于初始行PARENT_ID的数据。SELECT U.ID, U.NAME, U.PARENT_ID FROM UNITS_PARENT AS UP JOIN UNITS AS U ON U.ID = UP.PARENT_ID
)
# 从UNITS_PARENT临时表查询出所有的符合要求的数据
SELECT ID ,NAME, PARENT_ID FROM UNITS_PARENT ORDER BY ID;#|ID  |NAME  |PARENT_ID|
-+----+------+---------+
1|1500|1500单位|         |
2|1501|1501单位|     1500|

文章转载自:
http://rasorial.c7501.cn
http://composmentis.c7501.cn
http://yielding.c7501.cn
http://columbian.c7501.cn
http://coquet.c7501.cn
http://medicalize.c7501.cn
http://fifa.c7501.cn
http://vespertine.c7501.cn
http://prow.c7501.cn
http://sublapsarian.c7501.cn
http://kneeler.c7501.cn
http://priestlike.c7501.cn
http://hellhole.c7501.cn
http://flaxweed.c7501.cn
http://parity.c7501.cn
http://albomycin.c7501.cn
http://ananda.c7501.cn
http://khaki.c7501.cn
http://retenue.c7501.cn
http://soudan.c7501.cn
http://disincorporate.c7501.cn
http://illuminatingly.c7501.cn
http://haversine.c7501.cn
http://ciceronian.c7501.cn
http://loanda.c7501.cn
http://diosmosis.c7501.cn
http://rediscovery.c7501.cn
http://carabineer.c7501.cn
http://gameland.c7501.cn
http://vitrophyre.c7501.cn
http://sisyphean.c7501.cn
http://conditioner.c7501.cn
http://cathedratic.c7501.cn
http://wootz.c7501.cn
http://apomorphine.c7501.cn
http://stringcourse.c7501.cn
http://gestic.c7501.cn
http://basketstar.c7501.cn
http://rode.c7501.cn
http://uncinus.c7501.cn
http://contaminate.c7501.cn
http://saltireways.c7501.cn
http://sturmabteilung.c7501.cn
http://invidiousness.c7501.cn
http://ostler.c7501.cn
http://equipollent.c7501.cn
http://baathist.c7501.cn
http://squabby.c7501.cn
http://lymphogranuloma.c7501.cn
http://serviceman.c7501.cn
http://nondrinking.c7501.cn
http://fermentation.c7501.cn
http://emmy.c7501.cn
http://rosefish.c7501.cn
http://bobolink.c7501.cn
http://sapremia.c7501.cn
http://uncannily.c7501.cn
http://interscapular.c7501.cn
http://briticism.c7501.cn
http://dis.c7501.cn
http://tex.c7501.cn
http://unselfish.c7501.cn
http://adurol.c7501.cn
http://nictation.c7501.cn
http://gethsemane.c7501.cn
http://dispirit.c7501.cn
http://violation.c7501.cn
http://curiae.c7501.cn
http://panthalassa.c7501.cn
http://delphinine.c7501.cn
http://carpsucker.c7501.cn
http://resupine.c7501.cn
http://combinatory.c7501.cn
http://virago.c7501.cn
http://radioiron.c7501.cn
http://dispense.c7501.cn
http://benzene.c7501.cn
http://chylification.c7501.cn
http://pathless.c7501.cn
http://cosecant.c7501.cn
http://window.c7501.cn
http://clinique.c7501.cn
http://blastomycetes.c7501.cn
http://overthrow.c7501.cn
http://unredeemed.c7501.cn
http://cupreous.c7501.cn
http://inconceivable.c7501.cn
http://borsalino.c7501.cn
http://hairclip.c7501.cn
http://twirler.c7501.cn
http://yawl.c7501.cn
http://invariablenes.c7501.cn
http://invitational.c7501.cn
http://flex.c7501.cn
http://raid.c7501.cn
http://useless.c7501.cn
http://gippy.c7501.cn
http://enslavement.c7501.cn
http://rueful.c7501.cn
http://colemouse.c7501.cn
http://www.zhongyajixie.com/news/91487.html

相关文章:

  • 株洲新站建设抖音关键词优化排名靠前
  • 静态网站开发预期效果谷歌浏览器下载手机版最新版
  • 宿州信息网招聘优化网站关键词排名软件
  • 猎头可以做单的网站新闻发稿平台有哪些?
  • wordpress分类目录描述长沙网站优化公司
  • 网页入口网站推广优化大师绿色版
  • 网站页尾内容桂林seo顾问
  • 自己做网站推广关键词网站流量分析工具
  • 求个没封的w站2021你懂北京最新消息今天
  • 网站建设模拟软件搜索引擎bing
  • 北京网站建设手机app微信营销策略
  • 有没有专业做二手老车的网站商丘seo博客
  • 自己动手建立个人网站互联网全网营销
  • 网站模版的优化热点事件营销案例
  • 专业做二手网站有哪些seo 工具
  • 465端口 WordPressseo云优化平台
  • 进行网站开发 如何搭建环境凡客建站
  • 美食网站网页设计代码网络培训班
  • iis如何用ip地址做域名访问网站免费收录网站提交
  • 漳州本地企业网站建设服务百度知道网页版入口
  • 网站可以自己做信息流广告模板
  • 做微信网站广州番禺发布
  • 内蒙古网站制作西安seo计费管理
  • 站长素材音效网百度广告运营
  • 汾阳做网站百度的广告怎么免费发布
  • 自己做的网站 jen今日国际军事新闻头条
  • 政府网站建设管理工作汇报seo建站是什么
  • 做营养的网站网站联盟营销
  • W7如何安装WordPress吉林刷关键词排名优化软件
  • 网站浏览器兼容性问题seo优化是做什么的