Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एसक्यूएल में एक ही प्रश्न में श्रेणियां और उप-श्रेणियां कैसे प्राप्त करें? (माई एसक्यूएल)

यदि आप पूछ रहे हैं "क्या MySQL पुनरावर्ती प्रश्नों में है?" उत्तर "नहीं"।

लेकिन इसे संभालने का एक बहुत अच्छा तरीका है।

हेल्पर टेबल बनाएं (कैथेरार्की कहते हुए)

CatHierarchy:
    SuperId, ChildId, Distance
------------------------------ 
     1          1         0
     1          2         1
     2          2         0

यह अनावश्यक डेटा किसी भी पदानुक्रम का चयन करने के लिए 1 क्वेरी में आसानी से अनुमति देता है, और 2 में किसी भी पदानुक्रम का समर्थन करता है (हटाएं कैस्केड अखंडता को हटाने की सहायता से 1 क्वेरी में भी किया जाता है)।

अच्छा तो इसका क्या मतलब है। आप पदानुक्रम में सभी पथ ट्रैक करते हैं। कैट के प्रत्येक नोड को अपने आप में संदर्भ जोड़ना चाहिए (दूरी 0), फिर नोड्स के बारे में अनावश्यक डेटा जोड़कर दोहराव का समर्थन करें।

उप के साथ श्रेणी का चयन करने के लिए बस लिखें:

 SELECT c.* from Category c inner join CatHierarchy ch ON ch.ChildId=c.cat_id
      WHERE ch.SuperId = :someSpecifiedRootOfCat

someSpecifiedRootOfCat - श्रेणी के रूट को निर्दिष्ट करने के लिए पैरामीटर है!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सी # - अप्रत्याशित प्रमाणीकरण विधि mysql_native_password अपवाद

  2. MySql Proccesslist स्लीप एंट्री से भरी हुई है जिससे बहुत सारे कनेक्शन हो रहे हैं?

  3. GROUP पर किसी फ़ील्ड की पुनर्गणना कैसे करें

  4. दो तालिकाओं से एक तालिका में मान सम्मिलित करें

  5. MySQL क्वेरी एक कॉलम में दो मान जांचें