Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Model Set Bersarang, hitung item dalam kategori

Kedengarannya seperti tugas untuk LEFT OUTER JOIN bagi saya, seperti:

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

Dengan demikian, Anda memastikan bahwa semua kategori ditampilkan. Perhatikan bahwa saya tidak 100% yakin.

EDIT:Menambahkan sub-pilihan untuk kedalaman, cobalah.

EDIT:Koma dihapus




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Pilih nomor baris catatan

  2. Mengapa MySQL menggunakan indeks yang salah?

  3. Cara mengoptimalkan kueri MySQL berdasarkan paket EXPLAIN

  4. Kehabisan memori (dialokasikan 50855936) (mencoba mengalokasikan 50331646 byte)

  5. Permintaan MySQL untuk menemukan 3 tanggal terbaru dalam sebuah tabel