当前页面: 开发资料首页 → J2EE 专题 → sql语句如何写?
sql语句如何写?
摘要: sql语句如何写?
我有一个project表,表名project,里面有id,name,parentid等字段,parentid为父项目id,与父项目的id字段关联,我现在比如说我知道了一个id,我想把他所包含的子项目甚至孙子项目。。。。就是以这条记录为根节点,一直到叶结点,把这些记录全选出来,可我不知道怎么写sql语句,请各位指教。
select * from project where parentid in (select id from project where parentid='id')
似乎冒似不是这么简单,直接用sql你所说的表中应是实现不了。可考虑在代码中进行结果集处理。
嗯,似乎也是无穷递归,如果根节点下的子孙节点没有层限制的话
Hibernate处理这种自关联的表也会出现一些问题
一个sql语句无法实现,只能通过Java的迭代算法
可以用层次查询语句实现,比如oracle下是这么实现的:
SELECT level,
id,name,
SYS_CONNECT_BY_PATH(name,'/') PATH
FROM project
START WITH name='DOG'
CONNECT BY PRIOR parentid=id;
如果怕产生循环或者需要控制层数,可用NOCYCLE参数和level控制
where lever<=....
...
connect by nocycle prior...
同意dogod