これらのクエリでproduct_id
は、両方のテーブルにあると想定しています (間違っていると推測した場合は、正しいフィールド名を使用する必要があります)。Product_Category.description
カテゴリ名を持つフィールドの名前としても使用しています。
このクエリはすべてのカテゴリを取得し、テーブルにない製品カテゴリのカウントは 0になりProduct
ます。
在庫のある製品Product
ごとに 1 つのレコードが含まれている場合(つまり、4 冊の本は 4 つのレコードを意味します)、必要な機能です。Product
COUNT()
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_count
SUM()
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