これらのクエリでproduct_idは、両方のテーブルにあると想定しています (間違っていると推測した場合は、正しいフィールド名を使用する必要があります)。Product_Category.descriptionカテゴリ名を持つフィールドの名前としても使用しています。
このクエリはすべてのカテゴリを取得し、テーブルにない製品カテゴリのカウントは 0になりProductます。
在庫のある製品Productごとに 1 つのレコードが含まれている場合(つまり、4 冊の本は 4 つのレコードを意味します)、必要な機能です。ProductCOUNT()
SELECT Products_Category.description, COUNT(Product.product_id) AS category_count
FROM Products_Category
LEFT OUTER JOIN Products ON Products_Category.product_id=Products.product_id
GROUP BY Products_Category.description
在庫のあるタイプのProduct製品ごとに 1 つのレコードが含まれている場合(つまり、4 冊の本は 4 の 1 つのレコードを意味します)、必要な機能です。product_countSUM()
SELECT Products_Category.description, SUM(Product.product_count) AS category_count
FROM Products_Category
LEFT OUTER JOIN Products ON Products_Category.product_id=Products.product_id
GROUP BY Products_Category.description
そのカテゴリに在庫がある場合にのみレコードを返したい場合は、 を次のように変更しLEFT OUTER JOINますINNER JOIN。
SELECT Products_Category.description, SUM(Product.product_count) AS category_count
FROM Products_Category
INNER JOIN Products ON Products_Category.product_id=Products.product_id
GROUP BY Products_Category.description