मेरे लिए 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% निश्चित नहीं हूं।
संपादित करें:गहराई के लिए उप-चयन जोड़ा गया, इसे आज़माएं।
संपादित करें:हटाए गए अल्पविराम