@Alex Martelli
का जवाब बहुत अच्छा है! लेकिन यह समय (WHERE name = 'Joan'
) में एक तत्व के लिए ही काम करते हैं, तो आप WHERE
खंड बाहर ले, क्वेरी सभी जड़ कतारें लग वापस आ जाएगी ...
मैं मेरी स्थिति के लिए एक छोटा सा बदल गया है, तो यह कर सकते हैं एक मेज के लिए पूरे पेड़ दिखाओ।
तालिका परिभाषा: जड़, 1:
CREATE TABLE [dbo].[mar_categories] (
[category] int IDENTITY(1,1) NOT NULL,
[name] varchar(50) NOT NULL,
[level] int NOT NULL,
[action] int NOT NULL,
[parent] int NULL,
CONSTRAINT [XPK_mar_categories] PRIMARY KEY([category])
)
(level
सचमुच एक वर्ग 0 के स्तर पर है जड़ के बाद पहले के स्तर, ...)
और क्वेरी:
WITH n(category, name, level, parent, concatenador) AS
(
SELECT category, name, level, parent, '('+CONVERT(VARCHAR (MAX), category)+' - '+CONVERT(VARCHAR (MAX), level)+')' as concatenador
FROM mar_categories
WHERE parent is null
UNION ALL
SELECT m.category, m.name, m.level, m.parent, n.concatenador+' * ('+CONVERT (VARCHAR (MAX), case when ISNULL(m.parent, 0) = 0 then 0 else m.category END)+' - '+CONVERT(VARCHAR (MAX), m.level)+')' as concatenador
FROM mar_categories as m, n
WHERE n.category = m.parent
)
SELECT distinct * FROM n ORDER BY concatenador asc
(आप मैं सिर्फ अधिक पठनीय बनाने के लिए किया था, level
क्षेत्र को श्रेणीबद्ध करने की जरूरत नहीं)
इस क्वेरी की तरह कुछ किया जाना चाहिए के लिए इस सवाल का जवाब:
मुझे आशा है कि यह किसी को मदद करता है!
अब
, मैं कैसे MySQL पर यह करने के लिए सोच रहा हूँ ... ^^
के बाद से आप अधिक विवरण चाहते हैं लगता है, आप हमें कुछ तालिका संरचना डेटा और क्या आप की कोशिश कर रहे बताने के लिए होगा कर। यदि आपके पास मौजूदा ओरेकल क्वेरी है, तो यह एक अच्छी शुरुआत होगी .... –
@ जॉन, मेरे उत्तर में पोस्ट किया गया यूआरएल देखें, http://www.ibm.com/developerworks/db2/library/techarticle/ डीएम-0510rielau/- यह दिखाता है कि कैसे प्राथमिक काम करता है (वृक्ष संरचनाओं के लिए एक अच्छा लेकिन ओरेकल-मालिकाना वाक्यविन्यास) और सामान्य तालिका अभिव्यक्तियों (रिकर्सिव) के साथ समान प्रभाव कैसे प्राप्त करें, यानी, कीवर्ड के साथ (जो है एक एसक्यूएल मानक और आईबीएम डीबी 2, माइक्रोसॉफ्ट एसक्यूएल सर्वर, और रिलीज में ओपन-सोर्स पोस्टग्रेएसक्यूएल इंजन में कार्यान्वित किया गया 8.4)। –
@Alex: धन्यवाद, मैंने आपकी पोस्ट देखी और लेख पढ़ा। बहुत अच्छा लेख, और मैं देख सकता हूं कि ओरेकल उपयोगकर्ताओं को ओरेकल वाक्यविन्यास क्यों पसंद हो सकता है। मैं मानक वाक्यविन्यास पसंद करता हूं, क्योंकि यह अधिक सामान्य है। –