Is there a reason you're not "just" doing a regular join in the first query? They are not asking for ONLY supplying blue parts as far as I understand?
select s.sname from supplier s, part p, project j, spj x
where j.jcity in ('Athens','Rome') and p.colour = 'blue'
and x.s# = s.s# and x.p# =...