资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

包含nosql递归的词条

SQL递归(高分,急).

这个估计PKId是ParentId的父节点吧

成都创新互联公司是一家专业提供通道企业网站建设,专注与成都做网站、网站制作、H5页面制作、小程序制作等业务。10年已为通道众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

给你举个例子,就只用这两个字段吧,其他的也没多大用

PKId ParentId

1 0

2 0

3 1

4 2

5 1

假设数据是我上边这样的

可以假设每个PKId分别为商品大类,就把1的定义为软件吧,2定义为硬件,3为硬盘,4为ps软件,5为主板

这样的话,你就能看出对应关系了吧?

1和2是最高层的,所以无父节点,所以ParentId为0

3和5都是硬件,所以归属为1

4为软件,所以归属为2

这样的好处是减少多次读取其他表里的无用信息,在一定程度上可以提高效率,当然是指数据量大的时候,数据量小的时候基本没什么区别

作用你自己都说了,其实就是实现自我关联

但是这样有一点不好,在自身有主键外键,如果其中的逻辑关系弄的不太清楚的话,很容易出问题,简单来说就是这样了

sql 怎么递归查询的方法:

1.创建测试表,createtabletest_connect(idnumber,p_idnumber);

2.插入测试数据,

Insertintotest_connectvalues(1,1);

Insertintotest_connectvalues(2,1);

Insertintotest_connectvalues(3,2);

Insertintotest_connectvalues(4,3);

提交;

3.查询数据表的内容,选择*fromtest_connect,

4.执行递归查询语句,将答案添加到nocycle元素中,就不会有[ora-01436:CONNECTBYerrorintheuserdata]。执行结果如下:

Select*

来自test_connectt

从id=4开始

由nocyclepriort连接。p_id=t.i.

SQL如何实现递归查询检测

select * from table_name where id in (select id from table connect by prior id = pid start with id = 你想起始的ID);

(select id from table connect by prior id = pid start with id = 你想起始的ID);

这部分就可以递归查询到所有以某一个父ID下的所有的包含父ID在内的所有ID!

如何实现数据库SQL递归查询在不同数据库中例子源代码

sql 递归查询的方法:

方法一:T-SQL递归查询

with Dep as

(

select Id,DeptCode,DeptName from Department where Id=1

union all

select d.Id,d.DeptCode,d.DeptName from Dep

inner join Department d on dep.Id = d.ParentDeptId

)

select * from Dep

方法二:PL/SQL递归查询

select Id,DeptCode,DeptName

from Department

start with Id = 1

connect by prior Id = ParentDeptId;

关于SQL递归查询问题

我来测一下,等会上传结果

你还有一个表没用到。

WITH cte AS (

SELECT RegionID,RegionName,RegionPID FROM [tbRegionTree] WHERE regionPID='01'

UNION ALL

SELECT d.RegionID,d.RegionName,d.RegionPID FROM cte c inner JOIN [tbRegionTree] d ON d.regionPID=c.RegionID

)

SELECT * FROM cte

上面是找到 01 中国的。

下面为非中国的。 条件上处理下

WITH cte AS (

SELECT RegionID,RegionName,RegionPID FROM [tbRegionTree] WHERE regionPID NOT LIKE '01%'

UNION ALL

SELECT d.RegionID,d.RegionName,d.RegionPID FROM cte c inner JOIN [tbRegionTree] d ON d.regionPID=c.RegionID

)

SELECT * FROM cte


分享名称:包含nosql递归的词条
网页地址:http://cdkjz.cn/article/hdsgho.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220