【问题标题】:Recursive query Failing递归查询失败
【发布时间】:2019-03-01 09:57:57
【问题描述】:

我有下表

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;

【问题讨论】:

标签: mysql sql


【解决方案1】:

你有一个小错误。见下文:

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。

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多