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

hiển thị các danh mục phụ bằng cách sử dụng SQL

Tự tham gia trở lại bảng để tìm cha mẹ thực sự của đứa trẻ.

SELECT        c1.CategoryID, c2.ParentCategoryID, c1.Name, c2.Name as ParentName, c1.Published, c1.Deleted, c1.PictureID
FROM          Nop_Category c1
JOIN          Nop_Category c2 on c1.ParentCategoryId = c2.CategoryId
WHERE        (c1.Deleted = 0)  
AND          (c1.Published = 1)  
AND          (c1.ParentCategoryID = 10)

Điều này sẽ trả về cả hai con của danh mục "Máy tính". Đó có phải là những gì bạn đang tìm kiếm không?

Tất nhiên, bạn có thể xoay chuyển điều này để hiển thị tất cả con cái của một phụ huynh cụ thể hoặc từ tất cả các phụ huynh:

SELECT c.*, p.* -- shortened, but you should pick specific columns

FROM Nop_Category p -- parent
JOIN Nop_Category c ON c.ParentCategoryId = p.CategoryId -- children

WHERE p.ParentCategoryId = 0 -- all top level parents


SELECT c.*, p.* -- shortened, but you should pick specific columns

FROM Nop_Category p -- parent
JOIN Nop_Category c ON c.ParentCategoryId = p.CategoryId -- children

WHERE p.CategoryId = 10 -- only the "Computers" category

Hoặc, nếu bạn chỉ muốn con của danh mục "Máy tính", hãy thay đổi ParentCategoryId của bạn thành 10

SELECT        CategoryID, ParentCategoryID, Name, Published, Deleted, PictureID  
FROM          Nop_Category  
WHERE        (Deleted = 0)   
AND          (Published = 1)   
AND          (ParentCategoryID = 10)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để bạn tạo trường boolean có / không trong máy chủ SQL?

  2. Hướng dẫn về Cơ sở dữ liệu Thư

  3. Hiểu tầm quan trọng của cài đặt bộ nhớ trong SQL Server

  4. SQL Server Lock Escalation

  5. datetime2 so với smalldatetime trong SQL Server:Sự khác biệt là gì?