Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

sql вывести название категорий и посчитать количество товаров в данной категории

#mysql #sql


Проблема такова есть у меня список категорий, к категориям необходимо написать количество
товаров отвечающие даным категориям.



В базе данных имеются 2 таблицы 




+Product 
|_id
|_name
|_category_id
|_article





+Category
|_id
|_category_id
|_name




Посчитать количество товаров - просто.

SELECT category_id as category, count(*) AS cnt
FROM product 
GROUP BY category_id 


В результате мы получим таблицу вида:



category: 1 2 3 4 5 ... в общем номера категорий
cnt: ... количества товаров в категориях

Как мне сделать пересчет товаров и сопоставить колонку "category_id" таблицы product
с колонкой "name" таблицы Category(названия категорий) в одном запроса?

Пробовал так:

SELECT category_id as category, count(*) AS cnt
FROM product 
INNER JOIN category on product.category_id = category.category_id
GROUP BY category_id


Пробовал так:

SELECT fid AS category, COUNT(*) AS cnt, cname FROM
    (SELECT product.category_id AS fid, category.name AS cname, category.id AS cid
FROM category
    LEFT JOIN category on product.category_id = category.category_id) newtable
GROUP BY cid, cname


В общем с SQL я не силен, буду рад любой помощи. 



Ответ

SELECT category.name as category, count(*) AS cnt
FROM product 
INNER JOIN category on product.category_id = category.category_id
GROUP BY category.category_id

    


Ответы

Ответ 1



Вот так должно все нормально работать: SELECT c.name AS category, count(*) AS cnt FROM product AS p INNER JOIN category c ON p.category_id = c.category_id GROUP BY p.category_id Мой результат: "Category 01" => 2 "Category 02" => 3 "Category 03" => 4

Комментариев нет:

Отправить комментарий