When you use except
the two table must be compatible
, try this :
SELECT DISTINCT F.FNAME
FROM FACULTY F
WHERE NOT EXISTS (
( SELECT ROOM
FROM CLASS C)
EXCEPT
(SELECT C1.ROOM
FROM CLASS C1
WHERE C1.FID=F.FID)
);
EDIT
The question was tagged to sql server so I gave the answer keeping that in mind, for mysql use this :
SELECT FID, COUNT(*) FROM
(
(SELECT DISTINCT f.fname, f.fid, c1.room
FROM faculty f
JOIN class c1
ON f.fid = c1.fid) tb1
JOIN
(SELECT DISTINCT room AS room2 FROM class) tb2
ON tb1.room = tb2.room2
)
GROUP BY FID
HAVING COUNT(*) IN (SELECT COUNT(DISTINCT Room) FROM Class);