高分讨论~如何实现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 '),