Попробуйте что-то вроде этого:
SELECT id
FROM test
WHERE
value in (2,5)
GROUP by id
HAVING count(*) = 2
Если вы хотите проверить это, просто таблица для него (без индексов!):
CREATE TABLE IF NOT EXISTS test (
id int(4) NOT NULL,
`value` int(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO test (id, value) VALUES
(100, 1),
(100, 3),
(101, 1),
(101, 4),
(102, 2),
(102, 5),
(103, 2),
(103, 4),
(104, 1),
(104, 3),
(105, 2),
(105, 5);
У меня был очень похожий вопрос несколько дней назад. см. MySQL - Найти строки, соответствующие всем строкам из объединенной таблицы