#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
Комментариев нет:
Отправить комментарий