Т.к возникло некоторое недопонимани уточняю:
Требуется выбрать все field1, для которых в таблице В ДРУГИХ СТРОКАХ никогда не встречается value=a. т.е. на указанном примере должен быть результат field1=3, т.к. только для него нет строк в которых value было бы равно a
Ваш ответ, как и ответ ниже очевиден, но не корректен, к примеру строка 2 |1 |b удовлетворит `value` != 'a' и выведет field1=1, а не должно, т.к. есть еще строка 1 |1 |a , в которой это условие верно
Ответ по постановке вопроса. =)
Пока отходил, уже изменилась формулировка и найдено решение. Для академического интереса (если диалект SQL вашей БД позволяет), можно попробовать еще и так:
SELECT tablename.field1
FROM tablename
EXCEPT
SELECT tablename.field1
FROM tablename
WHERE tablename.value ='a'