Предложение WHERE может оценивать условия только для одной строки из данной таблицы за раз. Вы не можете создать условие, охватывающее несколько строк.
Но вы можете использовать self-join , чтобы сопоставить несколько строк из одной таблицы в одну строку набора результатов, поэтому вы можете применить условие, включающее оба.
SELECT t1.pid
FROM table t1 JOIN table t2 ON t1.pid=t2.pid
WHERE t1.value = 3 AND t2.value = 9;
Альтернативным решением является использование GROUP BY и подсчет различных значений:
SELECT t.pid
FROM table t
WHERE t.value IN (3,9)
GROUP BY t.pid
HAVING COUNT(DISTINCT t.value) = 2;