我只有一个表 “tbl_test”PL SQL查询recuresive循环
其中有表提起低于
tbl_test table
trx_id | proj_num | parent_num|
1 | 14 | 0 |
2 | 14 | 1 |
3 | 14 | 2 |
4 | 14 | 0 |
5 | 14 | 3 |
6 | 15 | 0 |
结果,我想给出的是:当trx_id值5被取出
这是一个父母子女关系。所以,
trx_id -> parent_num
5 -> 3
3 -> 2
2 -> 1
这意味着输出值:
3
2
1
让所有父链
查询我所用:
SELECT * FROM (
WITH RECURSIVE tree_data(project_num, task_num, parent_task_num) AS(
SELECT project_num, task_num, parent_task_num
FROM tb_task
WHERE project_num = 14 and task_num = 5
UNION ALL
SELECT child.project_num, child.task_num, child.parent_task_num
FROM tree_data parent Join tb_task child
ON parent.task_num = child.task_num AND parent.task_num = child.parent_task_num
)
SELECT project_num, task_num, parent_task_num
FROM tree_data
) AS tree_list ;
任何人可以帮助我吗?
看看递归的CTE('WITH RECURSIVE'查询)。 – 2013-03-14 12:24:04
检查但令人困惑... – 2013-03-14 12:28:57
Mysql不支持WITH,所以最好试试这个, http://stackoverflow.com/questions/1382573/how-do-you-use-the-with-clause -in-mysql – Balamurugan 2013-03-14 12:29:16