表示されるエラーは、列CategoryIDであることを示しています。 WHERE 句があいまいです。つまり、複数のCategoryIDがあるため、システムで適切な列を識別するのに問題があります。 列。
この問題を修正するには、エイリアスを使用して、WHEREに使用する列を指定します 条項:
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
同じ結果が得られるようにクエリも少し変更しましたが、LEFT JOINの組み合わせを使用する代わりに + IN 句+サブクエリ、INNER JOINを使用しました 句。このクエリでは、必要なCategoryIDを定義するだけで済みます。 一度実行すると、すべての子カテゴリが自動的に取得されます。
COUNTを使用しているため、クエリが正しく実行されるかどうかわかりません 結果をCategoryIDでグループ化せずに機能する ...
これがお役に立てば幸いです。