Lỗi bạn gặp phải cho bạn biết rằng cột CategoryID trong WHERE của bạn mệnh đề không rõ ràng, điều đó có nghĩa là hệ thống gặp sự cố khi xác định cột thích hợp vì có nhiều CategoryID cột.
Để khắc phục sự cố này, hãy sử dụng bí danh để chỉ định cột nào bạn muốn sử dụng cho WHERE của mình mệnh đề:
SELECT cat2.CategoryID AS CategoryID
,cat2.Name AS CategoryName
,COUNT(p.ProductID) AS CountProducts
FROM Category AS cat
INNER JOIN Category AS cat2 ON cat2.ParrentCategoryID = cat.CategoryID
INNER JOIN Products AS p ON p.CategoryID = cat2.CategoryID
WHERE cat.CategoryID = '876'
GROUP BY cat2.CategoryID, cat2.Name
ORDER BY cat2.Name
Tôi cũng đã thay đổi một chút truy vấn để nhận được kết quả tương tự nhưng thay vì sử dụng kết hợp LEFT JOIN + IN mệnh đề + truy vấn phụ, tôi đã sử dụng INNER JOIN Với truy vấn này, bạn chỉ cần xác định CategoryID mong muốn của mình một lần và nó sẽ tự động nhận mọi danh mục con.
Tôi không chắc rằng truy vấn của bạn chạy chính xác vì bạn đang sử dụng COUNT chức năng mà không cần nhóm kết quả theo CategoryID ...
Hy vọng điều này sẽ giúp bạn.