求树形结构数据自定义的递归查询? 数据就比如是Oracle里面的实例方案,employees表。如果我要查询一个节点的所有祖先(上级)节点,自定义一个递归查询应该怎么写?因为考虑到以后要移植。大家请不要给个Oracle数据库里帮实现的。因为考虑到移植。Oracle里是这样写: select * from employees start with employee_id=176 connect by prior manager_id=employee_id;如果要按标准的SQL语法应该怎么实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 标准的sql没有这样的功能了,本来connect by就是Oracle的特性sql。以前看到mysql里的方案是 用function做的。 如果你的表设计的不错的话, 由孩子找所有的父记录也是可以做到的。 比如我们现在在表里的设计加上了一个pathinfo, 或者叫hierarchy的字段这个字段是表示这个节点的路径的比如TableAid pid pathinfo1 12 1 1,23 2 1,2,34 2 1,2,45 3 1,2,3,5这里可以用类似select a2.id from tablea a1, tablea a2 where instr(a1.pathinfo||',', a2.id||',', 1, 1) > 0来查到所有的父亲,不过这里instr也不是标准的sql,不同的数据库instr可能是不一样的名字。 这样看来不能了,我表不是这样布的。那我想用PL/SQL编一个方法,那应该怎么变呢??? 那还不如用connect by来实现哟。plsql怎么能跨数据库呀, 如果我考虑到了跨平台,现在应该编写? 那只能在外面编写代码来吗?即编个Java代码。 如果要跨数据库,那还不如用代码实现。DB2与Oracle的存储过程就存在比较多的语法不同。 怎么写,就看你的表设计了,如果是只有id和pid, 那么就递归的去拿。我们一起做这样的hierarchy的设计都会放一个pathinfo,或者hierarchy的信息进去的 呵呵,那你就每种数据库对应的写一个递归函数吧,只用标准sql去递归~~~ 标准SQL能写吗?我不懂写?请指教 我的意思是你先用标准SQL实现一种数据库比如oracle的递归函数,然后再用db2的语法去改写这个函数要一个sql语句就实现这个功能,不依靠数据库的特性我没做过噢,不懂,可能比较难吧。 Oracle数据库存储模型,DB2数据库存储模型 ibatis标识符无效 oracle的简单检索 怎么实现oracle和jdbc中rowid格式的转化 一个触发器问题 急问版主 如何解决下列 blob问题? 请教Clob的问题 一个oracle的安装问题 如何写过程 千亿级大数据如何存储的问题? liusong_china进。。。问题请教···关于那天你给写的sql 一个很长很长的标题 问一个很长很长的问题~~~~~~~~~~~~~~~~~~~~~希望大大们能看到。。。。。。
1 1
2 1 1,2
3 2 1,2,3
4 2 1,2,4
5 3 1,2,3,5这里可以用类似
select a2.id from tablea a1, tablea a2 where instr(a1.pathinfo||',', a2.id||',', 1, 1) > 0
来查到所有的父亲,不过这里instr也不是标准的sql,不同的数据库instr可能是不一样的名字。
这样看来不能了,我表不是这样布的。
那我想用PL/SQL编一个方法,那应该怎么变呢???
那还不如用connect by来实现哟。plsql怎么能跨数据库呀,
如果我考虑到了跨平台,现在应该编写? 那只能在外面编写代码来吗?即编个Java代码。
DB2与Oracle的存储过程就存在比较多的语法不同。
呵呵,那你就每种数据库对应的写一个递归函数吧,只用标准sql去递归~~~
标准SQL能写吗?我不懂写?请指教
要一个sql语句就实现这个功能,不依靠数据库的特性我没做过噢,不懂,可能比较难吧。