Прошу помощи:
Имеется таблица товаров:
| id | caption |
| 1 | first |
| 2 | second |
| 3 | third |
Также имеется таблица параметров, объединенных в наборы
Наборы:
| id | set_name |
| 1 | set1 |
| 2 | set2 |
| 3 | set3 |
Параметры:
| id | set_id | param |
| 1 | 1 | 2014 |
| 2 | 1 | 2013 |
| 3 | 2 | param1 |
| 4 | 2 | param2 |
| 5 | 2 | param3 |
| 6 | 3 | param1_3 |
Ну и собственно таблица связей:
| id_item | id_param |
| 1 | 1 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
| 2 | 5 |
| 3 | 2 |
| 3 | 3 |
| 3 | 6 |
Что есть:
На входе имеется многомерный массив, с вложенными рассортированными по наборам параметрами:
$forSelect = array(
'set1' => array( '1' , '2' ),
'set2' => array( '3' , '5' ),
);
Что необходимо:
Сделать выборку товаров, в которых приведено хотя бы одно на каждый набор входящих параметров, т,е. если из 'year' в товаре имеется параметр '1' (2014), то в выборку он попадет только, если в товаре имеется связь с '3', или '5' из второго набора входящих данных
P.S.: Может быть мне стоит перестроить как-то базу для большего удобства, если такая задача будет вызывать сложности?