mysql选择递归父id错误“where子句”中的未知列
我是初学者,我尝试实现一个基于父id的递归查询 我在一个旧答案中发现了一个很好的例子: 表格如下:mysql选择递归父id错误“where子句”中的未知列,mysql,Mysql,我是初学者,我尝试实现一个基于父id的递归查询 我在一个旧答案中发现了一个很好的例子: 表格如下: 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 depa
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;
我之所以选择该示例,是因为这里还有一个工作演示:
问题是:
sqlfiddle在线运行良好,但如果我在PC中尝试过,会出现以下错误:
“where子句”中的未知列“\u id”
我使用mysql5.7.9在WAMP上运行,我用@d变量代替了id来解决它们
(SELECT @d := id_parent FROM department WHERE id = @d) AS id_parent