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

Sql Truy vấn tự tham gia? Làm thế nào để có được các danh mục phụ?

Đối với độ sâu tối đa là 6 (bao gồm cả gốc), bạn có thể sử dụng cái này

select l0.catID,
    concat(
      case when l5.catID is null then '' else concat(l5.category, '/') end
    , case when l4.catID is null then '' else concat(l4.category, '/') end
    , case when l3.catID is null then '' else concat(l3.category, '/') end
    , case when l2.catID is null then '' else concat(l2.category, '/') end
    , case when l1.catID is null then '' else concat(l1.category, '/') end
    , l0.category)
from catcat l0
left join catcat l1 on l0.parentID=l1.catID
left join catcat l2 on l1.parentID=l2.catID
left join catcat l3 on l2.parentID=l3.catID
left join catcat l4 on l3.parentID=l4.catID
left join catcat l5 on l4.parentID=l5.catID

Mở rộng mẫu theo yêu cầu để có độ sâu tối đa dài hơn.



  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 thêm cột tự động tăng dần trong bảng hiện có trong MySQL

  2. MySQL Chọn nhóm bản ghi dựa trên dấu thời gian mới nhất

  3. chọn tiêu đề liên quan dựa trên thẻ tương tự như like với mysql

  4. Chèn dữ liệu từ menu thả xuống vào cơ sở dữ liệu bằng PHP

  5. Làm thế nào để xử lý truy vấn tìm kiếm bằng ngôn ngữ tiếng Nhật với MySql?