Есть таблица вида
product_id | param_id
где product_id ID товара, param_id — ID параметра товара.
Параметры делятся на группы, у одного товара обычно есть один параметр из каждой группы.
Чтобы отобрать товары, которые выбирает клиент по параметрам из разных групп (отметить можно несколько параметров из одной группы), используется запрос вида:
SELECT
pp1.product_id
FROM
products_params pp1
JOIN products_params pp2 ON (pp1.product_id=pp2.product_id)
JOIN products_params pp3 ON (pp2.product_id=pp3.product_id)
WHERE
pp1.param_id IN (1,2,3,4,...)
AND pp2.param_id IN (80,81,82,83,...)
AND pp3.param_id IN (101,102,103,104,...)
Выше клиент выбрал по несколько параметров в каждой из трех групп. Но групп может быть до 15-ти.
Внимание, вопрос:
Если таблицу products_params переделать в таблицу вида:
product_id | param_id1 | param_id2 | ... | param_id15
Будет ли быстрее работать запрос:
SELECT
product_id
FROM
products_params
WHERE
param_id1 IN (1,2,3,4,...)
AND param_id2 IN (80,81,82,83,...)
AND param_id3 IN (101,102,103,104,...)
?
Заранее спасибо! +)