0
我是初学者,我尝试实现基于parent_id的递归查询。mysql select递归父id错误'where子句'中的未知列
我已经找到了一个例子,在一个旧的答案做工不错:
表是:
create table department (id int, name varchar(100), id_parent int null);
insert into department values (1, 'DEPARTMENT 1', NULL);
insert into department values (2, 'DEPARTMENT 2', 1);
insert into department values (3, 'DEPARTMENT 3', 2);
insert into department values (4, 'DEPARTMENT ABCD', 3);
insert into department values (5, 'DEPARTMENT X', NULL);
insert into department values (6, 'DEPARTMENT Y', 5);
insert into department values (7, 'DEPARTMENT Z', 6);
insert into department values (8, 'DEPARTMENT AB', 7);
和查询:
SELECT D2.id, D2.name, D2.id_parent
FROM (
SELECT
@d AS _id,
(SELECT @d := id_parent FROM department WHERE id = _id) AS id_parent,
@l := @l + 1 AS level
FROM
(SELECT
@d := (select id from department where name like 'DEPARTMENT AB'),
@l := 0
) initial_level,
department D
WHERE @d <> 0
) D1
JOIN department D2 ON D1._id = D2.id
ORDER BY D1.level DESC;
我选择了一个例子,因为它这里也有一个工作演示: http://sqlfiddle.com/#!9/f182fb/4
问题: 所以在网上sqlfiddle该工作不错,但如果我想他们在我的电脑得到这个错误:在 未知列'_id“where子句”
我在WAMP运行与MYSQL5 .7.9