Не знаю, как вы храните свои цвета (например, определение цвета HTML, название или что), но такой запрос может помочь:
select supplier.name
from supplier
where supplier.sid in (
-- all the suppliers who supply green parts
select distinct(a.sid)
from catalog a
inner join parts b on a.pid = b.pid
where b.color = 'green')
and supplier.sid not in (
-- all the supplier ids who supply parts that are not green
select distinct(a.sid)
from catalog a
inner join parts b on a.pid = b.pid
where b.color <> 'green')
Это возвращает имена поставщиков, которые есть ТОЛЬКО на складезеленые части.