Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mô hình tập hợp lồng nhau, đếm các mục trong danh mục

Nghe có vẻ như là một nhiệm vụ đối với LEFT OUTER JOIN đối với tôi, như vậy:

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

Qua đó, bạn đảm bảo rằng tất cả các danh mục đều được hiển thị. Lưu ý rằng tôi không chắc chắn 100%.

CHỈNH SỬA:Đã thêm lựa chọn phụ để biết độ sâu, hãy thử.

CHỈNH SỬA:Đã xóa dấu phẩy




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tạo báo cáo với phạm vi ngày cụ thể trong mysql

  2. Cách tạo trình kích hoạt để xóa php myadmin

  3. 1114 (HY000):Bảng đã đầy

  4. MySql:làm cho truy vấn này nhanh hơn ... có cách nào không?

  5. Bảng cập nhật MySQL dựa trên một giá trị bảng khác