2012-01-12 18 views
24

मेरी MySQL स्कीमा में, मैं category(id, parentid, name) तालिका MSSQL मेंएक एमएसएसएलएल सीटीई क्वेरी को MySQL में कैसे परिवर्तित करें?

है, मुझे लगता है कि CTE क्वेरी (नीचे से ऊपर एक वर्ग पेड़ के निर्माण के लिए एक आपूर्ति की श्रेणी आईडी के लिए है:

with CTE (id, pid, name) 
as 
(
    select id, parentid as pid,name 
    from category 
    where id = 197 
     union all 
     select CTE.pid as id , category.parentid as pid, category.name 
     from CTE 
      inner join category 
      on category.id = CTE.pid 
) 
select * from CTE 

कैसे करें MySQL करने के लिए कि क्वेरी 'को बदलने'

उत्तर

32

दुर्भाग्य से MySQL नहीं करता समर्थन CTE (आम टेबल भाव) यह IMO अक्सर, तुम सिर्फ एक सबक्वेरी बजाय उपयोग कर सकते हैं लंबे समय से अपेक्षित है, लेकिन इस विशेष CTE पुनरावर्ती है?।।: यह खुद को que के अंदर संदर्भित करता है ry। रिकर्सिव सीटीई पदानुक्रमित डेटा के लिए बेहद उपयोगी हैं, लेकिन फिर से: MySQL उनको समर्थन नहीं करता है। आपको एक ही परिणाम प्राप्त करने के लिए एक संग्रहीत प्रक्रिया को लागू करना होगा।

मेरा का एक पहले का जवाब एक अच्छा प्रारंभिक बिंदु प्रदान करना चाहिए:

Generating Depth based tree from Hierarchical Data in MySQL (no CTEs)

+0

मुझे लगता है कि यह सब कुछ मैं चाहता था, बहुत धन्यवाद :) – Tony

+0

@ f00, तो क्या वे इसे कभी भी लागू करने जा रहे हैं? या जवाब "कभी नहीं" है? – Pacerier

-2

शुक्र है यह आवश्यक नहीं है अब और है, MySQL 8.0.1supports CTE से शुरू के रूप में।

+0

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/16 9 38206) – Jonathan

+0

@ जोनाथन लेकिन यह सवाल का जवाब देता है :) –

+0

@ क्यूबाओबर आप सही हैं - मुझे शायद यह चिह्नित करना चाहिए कि इसके बजाय लिंक-केवल जवाब है। आपको वास्तव में किसी वेबसाइट को जोड़ने के बजाय यह कैसे काम करता है यह बताने के लिए कुछ कोड जोड़ना चाहिए। इस तरह यह ध्वजांकित और नीचे मतदान करने की संभावना कम है। एक बार ऐसा करने के बाद, एक टिप्पणी छोड़ दो और मैं अपनी टिप्पणी वापस ले जाऊंगा। – Jonathan

संबंधित मुद्दे