@masimka

Как подсчитать количество товаров в категории и атрибутах запрос по одной колонке?

Как сделан подсчёт количества товаров по атрибутам в интернет магазине, исходя из выбранного фильтра, на сайте?

Например на розетке или эльдорадо

Если я выберу белый цвет духовки, он мне пересчитает показатели фильтра в категории производителей, и покажет количество белых духовок у всех производителей, так же изменит остальные количество товарова в атрибутах фильтра.
Есть таблица (prodfltrsattrsvalues), в которую я ложу,
примерно такие данные.
id| prod_id | id_cat| attrs_id_val (красный 1, белый 2, индезит 4 и т.п.)| id_attr
id номер записи

prod_id номер продукта
id_cat номер категории
attrs_id_val занчение свойства (красный 1, белый 2, индезит 4 и т.п.)
id_attr номер свойства в таблице свойства

Т.е в этой таблице лежит 15 строк, с идентификатом атрибутов товара, и адентификатором товара в таблице товаров (products)

Я подсчитал количество по своим категориям так:
SELECT
    attrs_id_val,
    count(attrs_id_val)
FROM prodfltrsattrsvalues
where cat_id = 34
GROUP BY  attrs_id_val

сгрупировал, и получил идетификаторы категории (красный, или зелёный, или производитель) и количество.


attrs_id_val / count
58 5
42 1
138 10
137 1
126 3
135 4
59 1
143 6
133 2
132 5
136 7
3 1
131 3
115 5
61 1
49 2
116 5
46 1
94 3
84 2
118 1
142 5
77 1
125 9
130 1
140 1
89 1
4 1
119 10
60 4


Но если же делаю
SELECT
    attrs_id_val,
    count(attrs_id_val)
FROM prodfltrsattrsvalues
where cat_id = 34 and  attrs_id_val = 110 and attrs_id_val = 138
GROUP BY  attrs_id_val

не выводит ничего.

where cat_id = 34 and attrs_id_val IN (110,138)

выведет тоже , и что or.
Знаю что надо еще Having и Distinct но не знаю как.
Где почитать? Как это называется, куда копать. Благодарен.
  • Вопрос задан
  • 958 просмотров
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
where cat_id = 34 and attrs_id_val IN (110,138)

Да, именно так
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы