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

नेस्टेड सेट मॉडल, श्रेणियों में आइटम गिनें

मेरे लिए LEFT OUTER JOIN के लिए एक कार्य की तरह लगता है, जैसे:

SELECT parent.name, COUNT(product.item_id), 
       (select count(*) from Category parent2 
         where parent.lft > parent2.lft
           and parent.rgt < parent2.rgt) as depth
  FROM Category parent
  LEFT OUTER JOIN Category node 
    ON node.lft BETWEEN parent.lft AND parent.rgt
  LEFT OUTER JOIN Item_Category product
    ON node.category_id = product.category_id
 GROUP BY parent.name
 ORDER by node.lft

इस प्रकार, आप सुनिश्चित करते हैं कि सभी श्रेणियां दिखाई जाती हैं। ध्यान दें कि मैं 100% निश्चित नहीं हूं।

संपादित करें:गहराई के लिए उप-चयन जोड़ा गया, इसे आज़माएं।

संपादित करें:हटाए गए अल्पविराम




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डिफ़ॉल्ट दिनांक स्वरूप बदलें लार्वा sql क्वेरी

  2. mySQL - तीन तालिकाओं से डेटा और कॉलम का उपयोग करके एक नई तालिका बनाएं

  3. एक MySQL में दो तालिकाओं में शामिल होना

  4. कोडनिर्देशक की माइग्रेशन लाइब्रेरी में ट्रिगर कैसे बनाएं?

  5. किसी मौजूदा कॉलम में AUTO_INCREMENT कैसे जोड़ें?