Получение продуктов с желаемыми атрибутами

У меня есть категория с продуктами и набором атрибутов. Этими атрибутами являются «Форма» и «Диаметр».

Когда я открываю категорию без применения фильтров, я получаю продукты со следующим запросом:

"SELECT * FROM `products` WHERE `category_id` IN ('6', '7', '29', '8', '9', '36')" 

Затем я нажимаю на атрибут «Диаметр» (id = 2) со значением «8 мм» (id = 4) Я генерирую следующий запрос:

 "SELECT * FROM `products` JOIN `products_attributes_values` ON (`products_attributes_values`.`product_id` = `products`.`id`) WHERE `category_id` IN ('6', '7', '29', '8', '9', '36') AND `products_attributes_values`.`attribute_id` = 2 AND `products_attributes_values`.`value_id` = ('4')" 

И я получаю то, что мне нужно, все бусины с «Diameter 8mm». Затем я хочу больше фильтровать свои продукты и нажимать на атрибут «Shape» (id = 3) со значением «Round» (id = 11). И я ничего не получаю, запрос выглядит так:

 "SELECT * FROM `products` JOIN `products_attributes_values` ON (`products_attributes_values`.`product_id` = `products`.`id`) WHERE `category_id` IN ('6', '7', '29', '8', '9', '36') AND `products_attributes_values`.`attribute_id` = 2 AND `products_attributes_values`.`value_id` = ('4') AND `products_attributes_values`.`attribute_id` = 3 AND `products_attributes_values`.`value_id` = ('11')" 

поэтому вместо ничего я хочу получить шарики диаметром 8 мм и круглой формы. Отдельно все фильтры работают нормально. Он просто не работает, когда я хочу смешивать их, как в примере выше. Как мне нужно изменить запрос, чтобы выполнить работу?

Благодарю.

Обновить:

Я хочу объединить несколько значений по одному атрибуту с одним или несколькими из другого.

Например, я хочу получить Бусы с диаметром (id = 2) 8 мм (id = 4) или Diameter (id = 2) 10 мм (id = 5) и Shape (id = 3) Round (id = 11) или Shape (id = 3) Грановитая (id = 62)

Поэтому в конце я хочу получить 8мм или 10мм бусины с округлой или граненной формой.

Solutions Collecting From Web of "Получение продуктов с желаемыми атрибутами"