您现在的位置是:主页 > news > 公司网站建设记哪个科目/seo排名

公司网站建设记哪个科目/seo排名

admin2025/4/27 3:17:09news

简介公司网站建设记哪个科目,seo排名,视频网站 php源码,聊城做网站的公司咨询网上找的一个例子,介绍递归01.论坛首页 02.--数据库开发 03.----DB2 04.------DB2 文章1 05.--------DB2 文章1 的评论1 06.--------DB2 文章1 的评论2 07.------DB2 文章2 08.----Oracle 09.--Java技术 以上是一个论坛的典型例子,下面我们新建…

公司网站建设记哪个科目,seo排名,视频网站 php源码,聊城做网站的公司咨询网上找的一个例子,介绍递归01.论坛首页 02.--数据库开发 03.----DB2 04.------DB2 文章1 05.--------DB2 文章1 的评论1 06.--------DB2 文章1 的评论2 07.------DB2 文章2 08.----Oracle 09.--Java技术 以上是一个论坛的典型例子,下面我们新建…
网上找的一个例子,介绍递归

01.论坛首页  
02.--数据库开发  
03.----DB2  
04.------DB2 文章1  
05.--------DB2 文章1 的评论1  
06.--------DB2 文章1 的评论2  
07.------DB2 文章2  
08.----Oracle  
09.--Java技术  
以上是一个论坛的典型例子,下面我们新建一个表来存储以上信息。
--建表
drop table BBS;
CREATE TABLE BBS  
(  
PARENTID INTEGER NOT NULL,  
ID INTEGER NOT NULL,  
NAME VARCHAR(200) NOT NULL---板块、文章、评论等。  
);  
--插入数据
insert into bbs (PARENTID,ID,NAME) values   
(0,0,'论坛首页'),  
(0,1,'数据库开发'),  
(1,11,'DB2'),  
(11,111,'DB2 文章1'),  
(111,1111,'DB2 文章1 的评论1'),  
(111,1112,'DB2 文章1 的评论2'),  
(11,112,'DB2 文章2'),  
(1,12,'Oracle'),  
(0,2,'Java技术');  


假设现在让你查询一下‘DB2 文章1’的所有评论,有人说,这还不简单,如下:
 SELECT * FROM BBS WHERE PARENTID=(SELECT ID FROM BBS WHERE NAME='DB2 文章1');  

答案完全正确。
那么,现在让你查询一下DB2的所有文章及评论,怎么办?

传统的方法就很难查询了,这时候递归查询就派上用场了,如下:
WITH TEMP(PARENTID,ID,NAME) AS  
(  
SELECT PARENTID,ID,NAME FROM BBS WHERE NAME='DB2'      ---语句1  
UNION ALL          ---语句2 
SELECT B.PARENTID,B.ID,B.NAME FROM BBS AS B, TEMP AS T WHERE B.PARENTID=T.ID       ---语句3  
)  
SELECT NAME FROM TEMP;      ---语句4  


WITH 子句内的第一个 SELECT 语句是初始化表。它只执行一次。它的结果形成虚拟表的初始内容以作为递归的种子。在上面的示例中,种子是 'NAME' 为  DB2的一行或多行。 
第二个 SELECT 语句执行多次。将种子作为输入传递给第二个 SELECT 语句以产生下一个行集合。将结果添加(UNION ALL)到虚拟表的当前内容中,并放回到其中以形成用于下一次传递的输入。只要有行产生,这个过程就会继续。 

运行后,我们发现,结果完全正确,那它到底是怎么运行的呢?下面我们详细讲解一下。
1、首先,语句1将会执行,它只执行一次,作为循环的起点。得到结果集:DB2
2、接着,将循环执行语句3,这里我们有必要详细介绍一下。
首先语句3的意图是什么呢?说白了,它就是查找语句1产生结果集(DB2)的下一级,那么在目录树中DB2的下一级是什么呢?是‘DB2 文章1’和‘DB2 文章2’