यहाँ तालिका के उदाहरण संरचना होती है:एसक्यूएल में एक एकल स्तंभ में पुनरावर्ती parentID दिखाने के लिए कैसे
ID Name ParentID
-----------------------
1 Ancestor NULL
2 GrandFather 1
3 GrandMother 1
4 Child 3
मैं एक प्रश्न है कि वापसी होगी लिखने के लिए कोशिश कर रहा हूँ
ID Name Family
----------------------------
1 Ancestor
2 GrandFather Ancestor
3 GrandMother Ancestor
4 Child Ancestor^GrandMother
मुश्किल भाग यह है कि मैं सभी पंक्तियों के परिवार और शीर्ष-डाउन ऑर्डर में दिखाना चाहता हूं।
किसी को भी सही दिशा में मुझे बात कर सकते हैं, यह सराहना जाएगा :)
संपादित :: यह वास्तविक क्वेरी है, लेकिन यह एक ही विचार इस प्रकार है। यह लाइन पर एक त्रुटि देता है: marketparent.family + '^' + t2.marketGroupName नहीं कर सकते क्योंकि यह marketparent
WITH marketparent (marketGroupID,parentGroupID, marketGroupName,family)
AS
(
SELECT marketGroupID,
parentGroupID,
marketGroupName,
'' as family
FROM EVE.dbo.invMarketGroups
WHERE parentGroupID IS NULL
UNION ALL
SELECT t2.parentGroupID,
t2.marketGroupID,
t2.marketGroupName,
marketparent.family + '^'+ t2.marketGroupName
FROM EVE.dbo.invMarketGroups as t2
INNER JOIN marketparent as mp
ON mp.marketGroupID = t2.parentGroupID
)
-- Statement using the CTE
SELECT TOP 10 *
FROM marketparent;
समाधान डीबीएमएस आप उपयोग पर निर्भर करेगा। एसक्यूएल सर्वर, ओरेकल, MySQL या ....? –
मैं SQL Server 2008 – darthun08
का उपयोग कर रहा हूं 'मार्केटपेरेंट' के बजाय उपनाम 'mp' का उपयोग करें। –