मेरे पास टेबल के नीचे है

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
uSeruSher 25 सितंबर 2018, 20:37

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;

आपको B.TOPIC के बजाय A.TOPIC मिलना चाहिए।

1
The Impaler 25 सितंबर 2018, 20:42