Comparing the location of values in different tables
Seems to me that a combination of an INNER JOIN and EXISTS should do:

SELECT DISTINCT(s.pizza)
FROM dbo.Sells s
INNER JOIN dbo.Restaurants r
    ON s.rname = r.rname
WHERE EXISTS(SELECT 1 FROM dbo.Customers
             WHERE cname = 'bob'
             AND area = r.area) 
;