Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Misha v.3 21.11.2015 01:04 / 21.11.2015 01:16
1.SELECT t1.* FROM test AS t1 INNER JOIN ( SELECT t2.id , COUNT(*) AS cnt FROM test AS t2 WHERE parameter_id IN (1,2)/* это OR */ GROUP BY id ) AS t3 ON (t1.id = t3.id) WHERE t3.cnt = 2/* количество параметров, которые должны совпадать */2.
SELECT t1.* FROM test AS t1 WHERE ( SELECT COUNT(*) FROM test AS t2 WHERE t2.id = t1.id AND t2.parameter_id IN (1,2) /* это OR */ ) = 2 /* количество параметров, которые должны совпадать */из этих второй запрос лучше, но нужен составной индекс по id, parameter_id