image002.gif数据表: node_id(子节点),job_id(子作业号),up_node_id(父节点),up_job_id(父作业号) 找出node_id,job_id与up_node_id,up_job_id之间的所有路径。数据如:
create table job(node_id varchar(20),job_id varchar(20), up_node_id varchar(20),up_job_id varchar(20))insert into job values('CBRUN', 'CB_AGENT_TR_DLY', 'CBRUN','SS_CBRUN_START');
insert into job values('CBRUN', 'SS_CBRUN_START', 'CFRUN','SE_CFRUN_END')
insert into job values('CFRUN', 'SE_CFRUN_END', 'CFRUN','CF_IN_OUT')
insert into job values('CFRUN', 'CF_IN_OUT', 'CFRUN','SS_CFRUN_START')
insert into job values('CFRUN', 'SS_CFRUN_START', 'TRANF','SE_TRANF_END')
insert into job values('TRANF', 'SE_TRANF_END', 'TRANF','TF_CR_CK01_M')
insert into job values('TRANF', 'TF_CR_CK01_M', 'TRANF','SS_TRANF_START')
insert into job values('TRANF', 'SS_TRANF_START', 'TRANP','SE_TRANP_END')
如求尾节点:node_id = 'CBRUN' job_id ='SS_CBRUN_START' 到 头节点:up_node_id ='TRANP' up_job_id='SE_TRANP_END' 之间路径我想用递归算法来取出 但是没有实现,急求答案
create table job(node_id varchar(20),job_id varchar(20), up_node_id varchar(20),up_job_id varchar(20))insert into job values('CBRUN', 'CB_AGENT_TR_DLY', 'CBRUN','SS_CBRUN_START');
insert into job values('CBRUN', 'SS_CBRUN_START', 'CFRUN','SE_CFRUN_END')
insert into job values('CFRUN', 'SE_CFRUN_END', 'CFRUN','CF_IN_OUT')
insert into job values('CFRUN', 'CF_IN_OUT', 'CFRUN','SS_CFRUN_START')
insert into job values('CFRUN', 'SS_CFRUN_START', 'TRANF','SE_TRANF_END')
insert into job values('TRANF', 'SE_TRANF_END', 'TRANF','TF_CR_CK01_M')
insert into job values('TRANF', 'TF_CR_CK01_M', 'TRANF','SS_TRANF_START')
insert into job values('TRANF', 'SS_TRANF_START', 'TRANP','SE_TRANP_END')
如求尾节点:node_id = 'CBRUN' job_id ='SS_CBRUN_START' 到 头节点:up_node_id ='TRANP' up_job_id='SE_TRANP_END' 之间路径我想用递归算法来取出 但是没有实现,急求答案
求尾节点:node_id = 'CBRUN ' job_id = 'SS_CBRUN_START ' 到 头节点:up_node_id = 'TRANP ' up_job_id= 'SE_TRANP_END ' 之间路径 就是要求我们取出这两点之间所有纪录。
1、如果你的数据库排序是按照你所说的路径的话,直接用SQL就可以解决了。
2、如果不是1的话,那么你还是没有说出路径的逻辑是什么,至少我不懂。
父子节点是一个????
{
if (start-->end)
print "start->end"
else
{start=strat-->next
tree(start)
}
}