Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zagnieżdżony model zestawu, policz elementy w kategoriach

Brzmi jak zadanie dla LEFT OUTER JOIN, tak jak:

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

W ten sposób zapewniasz wyświetlanie wszystkich kategorii. Pamiętaj, że nie jestem w 100% pewien.

EDYCJA:Dodano podwybór głębokości, spróbuj.

EDYCJA:usunięto przecinek




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównanie binarne mysql nie używa indeksu

  2. MYSQL i klauzula LIMIT

  3. WYBIERANIE danych z procedur składowanych

  4. odwróć mysql_real_escape_string

  5. PHP PDO bindParam() i MySQL BIT