sql >> Databasteknik >  >> RDS >> Mysql

Kapslad uppsättningsmodell, räkna objekt i kategorier

Låter som en uppgift för LEFT OUTER JOIN för mig, som så:

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

Därmed säkerställer du att alla kategorier visas. Observera att jag inte är 100 % säker.

EDIT:Lade till underval för djup, prova det.

EDIT:Borttaget komma




  1. Hur tvingar du mysql LIKE att vara skiftlägeskänslig?

  2. Funktion i SQL Server 2008 som liknar GREATEST i mysql?

  3. Hur släpper man en kolumn i SQL?

  4. Orsaker till MySQL-autentiseringsfel:Åtkomst nekad för användaren 'xxx'@'yyy'?