sql >> Databáze >  >> RDS >> Mysql

Vnořený model sady, počítejte položky v kategoriích

Zní mi to jako úkol pro LEFT OUTER JOIN, třeba takto:

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

Tím zajistíte, že se zobrazí všechny kategorie. Všimněte si, že si nejsem 100% jistý.

EDIT:Přidán dílčí výběr hloubky, vyzkoušejte to.

EDIT:Odstraněna čárka




  1. Chyba MYSQLi:Uživatel již má aktivních připojení více než 'max_user_connections'

  2. Jak uniknout čárce a dvojité uvozovce současně pro soubor CSV?

  3. Jak VYBRAT Z uložené procedury

  4. docker-compose:pokaždé znovu inicializuje databázi MySQL