Суть в следующем. Есть 2 таблицы - product и product_attributes. В product_attributes данные хранятся в виде структуры: attribute_id, attribute_value, product_id. Стоит тривиальная задача вывести количество товаров, у которых выбрано n значений. Запрос типа такого, который приходит на ум, не работает.
select p.id, p.name, pa.attribute_id, pa.value_id FROM products p LEFT JOIN product_attributes pa ON p.id=pa.product_id WHERE ((pa.attribute_id=11 AND pa.value_id=1) AND (pa.attribute_id=13 AND pa.value_id=113))
Не работает видимо потому, что у нас (pa.attribute_id=11 AND pa.value_id=1) и (pa.attribute_id=13 AND pa.value_id=113) различные записи. Как решить, не могу пока додуматься.