首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

高分讨论~怎么实现Table的递归查询

2012-01-13 
高分讨论~如何实现Table的递归查询~这是一个比较老的问题了,但是最近要用到,却忘记怎么查了~高手帮帮忙~表

高分讨论~如何实现Table的递归查询~
这是一个比较老的问题了,但是最近要用到,却忘记怎么查了~高手帮帮忙~

表table_a
列名         id             parent_id         name
                  0                     -1                 -
                  1                     0                   a
                  2                     1                   b
                  3                     1                   c
                  4                     1                   d
                  5                     2                   e
                  6                     2                   f
                  7                     3                   g
                  8                     4                   h
                  9                     6                   i
                10                     8                   j
                11                     9                   k
                12                     11                 l

例子就给这些数据吧,查询要求:
1,查出parent_id=1的所有项;
2,如果某一个id被查出来,那么它的所有子项也要被查出来,如:
      id=3被查出来,那么parent_id=3的所有项也要被查出来;

请高手们讨论一下:
1,哪种方法查询sql语句最简单?
2,哪种方法查询sql语句效率最高?

请大家写出自己的能够执行的并且结果正确的sql语句~

[解决办法]
create table table_a(id int(11) not null, parent_id int(11), name char(1),primary key(id)) engine=innodb
default charset=utf8;
insert into table_a values(0,-1, '- '),
(1, 0, 'a '),
(2, 1, 'b '),
(3, 1, 'c '),
(4, 1, 'd '),
(5, 2, 'e '),
(6, 2, 'f '),
(7, 3, 'g '),
(8, 4, 'h '),
(9, 6, 'i '),
(10, 8, 'j '),


(11, 9, 'k '),
(12, 11, 'l ');

select * from table_a where parent_id = 1;
select * from table_a a inner join table_a b on a.id=b.id and a.id=3;

[解决办法]

一起关注...

[解决办法]
路过 学习下
[解决办法]
需要用函数,看起来楼上象是要显示树,如果那样的话最好不要用递归
[解决办法]
SQL好像不能递归耶,如果表不大的话,可以将表中的数据全部查出来,自己在程序中筛选出所要的数据
[解决办法]
SQL不支持递归,这个问题用程序解决比用SQL解决更合适
[解决办法]
1
[解决办法]
是有點難度,關注一下。
[解决办法]
SQL是不能递归的,建议你用程序去写

热点排行