递归查询失败

qoefvg9y  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(323)

我有一张table

TOPIC_NO    TOPIC_NAME  parent_no
54          Intro Main  0
56          LTCP        54
57          Intro Main  54
59          Intro       57
62          Link Demo   0

对于一个给定的主题,我想列出所有的孩子,孩子的孩子…等等。我试图构建递归查询,但遇到了“ The maximum recursion 100 has been exhausted before statement completion ."
下面是我到目前为止所做的。非常感谢您的帮助

WITH TEMP(TOPIC_NO) AS (
SELECT TOPIC_NO FROM EDUDB.TOPICS WHERE TOPIC_NO= 54
UNION ALL 
SELECT B.TOPIC_NO FROM EDUDB.TOPICS A, TEMP B
WHERE A.PARENT_NO = B.TOPIC_NO
AND A.PARENT_NO <> 0
)
SELECT * FROM TEMP;
d4so4syb

d4so4syb1#

你犯了个小错误。见下表:

WITH TEMP(TOPIC_NO) AS (
SELECT TOPIC_NO FROM EDUDB.TOPICS WHERE TOPIC_NO= 54
UNION ALL 
SELECT A.TOPIC_NO FROM EDUDB.TOPICS A, TEMP B -- here!
WHERE A.PARENT_NO = B.TOPIC_NO
AND A.PARENT_NO <> 0
)
SELECT * FROM TEMP;

你必须得到 A.TOPIC 而不是 B.TOPIC .

相关问题