代码之家  ›  专栏  ›  技术社区  ›  uSeruSher

递归查询失败

  •  1
  • uSeruSher  · 技术社区  · 6 年前

    我在桌子下面

    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;
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   The Impaler    6 年前

    你犯了一个小错误。见下文:

    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 .